Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận
Thông thường, chúng tôi muốn tạo một danh sách chứa một giá trị liên tục như, trong phạm vi 100-200. Hãy để thảo luận về cách tạo một danh sách bằng hàm
>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
1.>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
3>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
4Điều này sẽ hoạt động?
As we can see in the output, the result is not exactly what we were expecting because Python does not unpack the result of the range[] function.
2>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
3 >>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
4>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
5>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
6>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
7>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
8>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
9>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
8>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
1>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
2 We can use argument-unpacking operator i.e. *.>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
Đầu ra: Như chúng ta có thể thấy trong đầu ra, kết quả không chính xác là những gì chúng ta mong đợi vì Python không giải nén kết quả của hàm phạm vi [].
>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
3>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
4Mã số 1: Chúng ta có thể sử dụng toán tử đối số-unpacking, tức là *.
As we can see in the output, the argument-unpacking operator has successfully unpacked the result of the range function.
Code #2 : We can use the
>>> x1=11
>>> x2=16
>>> range[x1, x2+1]
[11, 12, 13, 14, 15, 16]
>>> list1 = range[x1, x2+1]
>>> list1
[11, 12, 13, 14, 15, 16]
9 function to unpack the result of range function.>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
2>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
3 >>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
4>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
8>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
5>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
6>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
7>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
8>>> x1=11
>>> x2=16
>>> range[x1, x2+1]
[11, 12, 13, 14, 15, 16]
>>> list1 = range[x1, x2+1]
>>> list1
[11, 12, 13, 14, 15, 16]
3>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
8>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
1>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
2Đầu ra: Như chúng ta có thể thấy trong đầu ra, toán tử phản ứng đối số đã giải nén thành công kết quả của hàm phạm vi. & NBSP; Mã số 2: Chúng ta có thể sử dụng hàm
>>> x1=11
>>> x2=16
>>> range[x1, x2+1]
[11, 12, 13, 14, 15, 16]
>>> list1 = range[x1, x2+1]
>>> list1
[11, 12, 13, 14, 15, 16]
9 để giải nén kết quả của hàm phạm vi.>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
2>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
3 >>> list2 = [x*0.5 for x in range[2*x1, 2*x2+1]]
>>> list2
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0]
2range[x1, x2+1]
0range[x1, x2+1]
1>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
5range[x1, x2+1]
3range[x1, x2+1]
0range[x1, x2+1]
5>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
3>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
4
3>>> list2 = [x*0.5 for x in range[2*x1, 2*x2+1]]
>>> list2
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0]
3 >>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
7>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
8>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
9>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
Đã hỏi 9 năm, 1 tháng trước 9 years, 1 month ago
Đã xem 1,6m lần 1.6m times
Làm cách nào để tạo một danh sách tăng dần giữa hai giá trị? Ví dụ: danh sách từ 11 đến 16:
[11, 12, 13, 14, 15, 16]
Mateen Ulhaq
22.2K16 Huy hiệu vàng86 Huy hiệu bạc127 Huy hiệu đồng16 gold badges86 silver badges127 bronze badges
Hỏi ngày 16 tháng 8 năm 2013 lúc 4:43Aug 16, 2013 at 4:43
Sử dụng
>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
5. Trong Python 2, nó trả về một danh sách trực tiếp:>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
Trong Python 3,
>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
5 là một người lặp. Để chuyển đổi nó thành một danh sách:>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
Lưu ý: Số thứ hai trong
0 là độc quyền. Vì vậy, list[range[x1, x2+1]]
1.:
The second number in list[range[x1, x2+1]]
list[range[x1, x2+1]]
0 is exclusive. So, list[range[x1, x2+1]]
1.Để tăng thêm các bước
list[range[x1, x2+1]]
2, hãy xem xét sử dụng list[range[x1, x2+1]]
3 và list[range[x1, x2+1]]
4 của Numpy:>>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
Xem: Làm cách nào để sử dụng giá trị bước thập phân cho phạm vi []?
Mateen Ulhaq
22.2K16 Huy hiệu vàng86 Huy hiệu bạc127 Huy hiệu đồng16 gold badges86 silver badges127 bronze badges
Hỏi ngày 16 tháng 8 năm 2013 lúc 4:43Aug 16, 2013 at 4:47
Sử dụng
>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
5. Trong Python 2, nó trả về một danh sách trực tiếp:JaredTrong Python 3,
5 là một người lặp. Để chuyển đổi nó thành một danh sách:7 gold badges52 silver badges61 bronze badges>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
9
Lưu ý: Số thứ hai trong
list[range[x1, x2+1]]
0 là độc quyền. Vì vậy, list[range[x1, x2+1]]
1.>>> x1=11
>>> x2=16
>>> range[x1, x2+1]
[11, 12, 13, 14, 15, 16]
>>> list1 = range[x1, x2+1]
>>> list1
[11, 12, 13, 14, 15, 16]
Để tăng thêm
list[range[x1, x2+1]]
2 thay vì >>> import numpy as np
>>> np.arange[11, 17, 0.5].tolist[]
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
1, giả sử:>>> list2 = [x*0.5 for x in range[2*x1, 2*x2+1]]
>>> list2
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0]
Đã trả lời ngày 16 tháng 8 năm 2013 lúc 4:46Aug 16, 2013 at 4:46
Devnulldevnulldevnull
Huy hiệu vàng 114K3333 gold badges227 silver badges218 bronze badges
1
Try:
range[x1, x2+1]
Đó là một danh sách trong Python 2.x và hoạt động chủ yếu giống như một danh sách trong Python 3.x. Nếu bạn đang chạy Python 3 và cần một danh sách mà bạn có thể sửa đổi, thì hãy sử dụng:
list[range[x1, x2+1]]
Ah bon
8.4097 Huy hiệu vàng 50 Huy hiệu bạc107 Huy hiệu Đồng7 gold badges50 silver badges107 bronze badges
Đã trả lời ngày 16 tháng 8 năm 2013 lúc 4:49Aug 16, 2013 at 4:49
Mike Houskymike HouskyMike Housky
3,8811 Huy hiệu vàng16 Huy hiệu bạc 30 Huy hiệu Đồng1 gold badge16 silver badges30 bronze badges
Nếu bạn đang tìm kiếm hàm như chức năng hoạt động cho loại float, thì đây là một bài viết rất hay.
def frange[start, stop, step=1.0]:
''' "range[]" like function which accept float type'''
i = start
while i < stop:
yield i
i += step
# Generate one element at a time.
# Preferred when you don't need all generated elements at the same time.
# This will save memory.
for i in frange[1.0, 2.0, 0.5]:
print i # Use generated element.
# Generate all elements at once.
# Preferred when generated list ought to be small.
print list[frange[1.0, 10.0, 0.5]]
Output:
1.0
1.5
[1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5]
Đã trả lời ngày 15 tháng 3 năm 2016 lúc 3:21Mar 15, 2016 at 3:21
Rajesh Suranarajesh SuranaRajesh Surana
7931 Huy hiệu vàng9 Huy hiệu bạc15 Huy hiệu đồng1 gold badge9 silver badges15 bronze badges
1
Giả sử bạn muốn có một phạm vi giữa x đến y
>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
0sử dụng danh sách cho hỗ trợ 3.x
Đã trả lời ngày 16 tháng 8 năm 2013 lúc 4:47Aug 16, 2013 at 4:47
v2bv2bv2b
1.4169 huy hiệu bạc14 huy hiệu đồng9 silver badges14 bronze badges
Sử dụng danh sách hiểu trong Python. Vì bạn cũng muốn 16 trong danh sách .. Sử dụng x2+1. Hàm phạm vi không bao gồm giới hạn cao hơn trong hàm.
>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
1
Ah bon
8.4097 Huy hiệu vàng 50 Huy hiệu bạc107 Huy hiệu Đồng7 gold badges50 silver badges107 bronze badges
Đã trả lời ngày 16 tháng 8 năm 2013 lúc 4:46Aug 16, 2013 at 4:46
4
Đã trả lời ngày 16 tháng 8 năm 2013 lúc 4:49
>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
2Mike Houskymike Housky
>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
33,8811 Huy hiệu vàng16 Huy hiệu bạc 30 Huy hiệu Đồng
Nếu bạn đang tìm kiếm hàm như chức năng hoạt động cho loại float, thì đây là một bài viết rất hay.Jun 4, 2019 at 19:01
Đã trả lời ngày 15 tháng 3 năm 2016 lúc 3:21
>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
4Rajesh Suranarajesh Surana
7931 Huy hiệu vàng9 Huy hiệu bạc15 Huy hiệu đồngAug 3, 2020 at 21:25
Giả sử bạn muốn có một phạm vi giữa x đến yJose
sử dụng danh sách cho hỗ trợ 3.x17 silver badges19 bronze badges
Đã trả lời ngày 16 tháng 8 năm 2013 lúc 4:47
>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
51.4169 huy hiệu bạc14 huy hiệu đồng
>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
6Sử dụng danh sách hiểu trong Python. Vì bạn cũng muốn 16 trong danh sách .. Sử dụng x2+1. Hàm phạm vi không bao gồm giới hạn cao hơn trong hàm.
Trong Python, bạn có thể làm điều này rất vui vẻJan 11, 2018 at 11:22
Hoặc bạn có thể tạo một hàm đệ quy trả về một mảng lên đến một số đã cho:Michael
Đầu ra: AR = [10,9,8,7,6,5,4,3,2,1,0]1 gold badge33 silver badges53 bronze badges
2
Đã trả lời ngày 4 tháng 6 năm 2019 lúc 19:01
>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
7Tôi đã đến đây vì tôi muốn tạo một phạm vi từ -10 đến 10 với mức tăng 0,1 bằng cách sử dụng danh sách hiểu. Thay vì thực hiện một chức năng quá phức tạp như hầu hết các câu trả lời ở trên, tôi chỉ làm điều này
Bằng cách thay đổi số lượng phạm vi thành 100, bây giờ tôi nhận được phạm vi từ -10 đến 10 bằng cách sử dụng hàm phạm vi tiêu chuẩn. Vì vậy, nếu bạn cần nó bằng 0,2 thì chỉ cần phạm vi [-200, 200], v.v.: now step may be negative. Thanks @Michael for his comment.
Đã trả lời ngày 3 tháng 8 năm 2020 lúc 21:25Dec 4, 2017 at 15:42
JosejoseDenis Rasulev
1.52117 Huy hiệu bạc19 Huy hiệu đồng4 gold badges33 silver badges41 bronze badges
5
Cách thanh lịch nhất để làm điều này là bằng cách sử dụng chức năng
>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
5 tuy nhiên nếu bạn muốn tạo lại logic này, bạn có thể làm điều gì đó như thế này:>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
8Điều này tạo ra đầu ra:
>>> range[11, 17]
[11, 12, 13, 14, 15, 16]
9Như được thể hiện trước đây bởi @Jared, cách tốt nhất là sử dụng
>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
5 hoặc def frange[start, stop, step=1.0]:
''' "range[]" like function which accept float type'''
i = start
while i < stop:
yield i
i += step
# Generate one element at a time.
# Preferred when you don't need all generated elements at the same time.
# This will save memory.
for i in frange[1.0, 2.0, 0.5]:
print i # Use generated element.
# Generate all elements at once.
# Preferred when generated list ought to be small.
print list[frange[1.0, 10.0, 0.5]]
0 tuy nhiên tôi thấy mã thú vị được chia sẻ.Jun 18, 2020 at 13:50
Đã trả lời ngày 11 tháng 1 năm 2018 lúc 11:22YTZ
Michaelmichael6 silver badges22 bronze badges
2.3021 Huy hiệu vàng33 Huy hiệu bạc53 Huy hiệu đồng
Mỗi câu trả lời ở trên giả định phạm vi chỉ có số dương. Dưới đây là giải pháp để trả về danh sách các số liên tiếp trong đó các đối số có thể là bất kỳ [dương hoặc âm], với khả năng đặt giá trị bước tùy chọn [mặc định = 1].
>>> list[range[11, 17]]
[11, 12, 13, 14, 15, 16]
0Chẳng hạn, lệnh tiêu chuẩn
def frange[start, stop, step=1.0]:
''' "range[]" like function which accept float type'''
i = start
while i < stop:
yield i
i += step
# Generate one element at a time.
# Preferred when you don't need all generated elements at the same time.
# This will save memory.
for i in frange[1.0, 2.0, 0.5]:
print i # Use generated element.
# Generate all elements at once.
# Preferred when generated list ought to be small.
print list[frange[1.0, 10.0, 0.5]]
1 Trả về danh sách trống >>> list2 = [x*0.5 for x in range[2*x1, 2*x2+1]]
>>> list2
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0]
2, trong khi chức năng này sẽ trả về def frange[start, stop, step=1.0]:
''' "range[]" like function which accept float type'''
i = start
while i < stop:
yield i
i += step
# Generate one element at a time.
# Preferred when you don't need all generated elements at the same time.
# This will save memory.
for i in frange[1.0, 2.0, 0.5]:
print i # Use generated element.
# Generate all elements at once.
# Preferred when generated list ought to be small.
print list[frange[1.0, 10.0, 0.5]]
3Oct 1, 2021 at
13:13