Tôi có một từ điển các đối tượng chứa "tên/phạm vi" trong một bảng tính. Khi tôi xử lý bảng tính, tôi cần cập nhật giá trị được liên kết với một phạm vi.
Lớp để giữ thông tin này trông như thế này:
class varName:
name = None
refersTo = None
refersToR1C1 = None
value = None
def __init__[self, name, refersTo, refersToR1C1, value]:
self.name = name
self.refersTo = refersTo
self.refersToR1C1 = refersToR1C1
self.value = value
Tôi tạo từ điển như sau:
staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
Nó dường như làm việc ổn. Tôi có thể thấy từ điển và các đối tượng chứa gỡ lỗi. Khi tôi quay lại để cập nhật các đối tượng trong từ điển dựa trên việc xử lý bảng tính, tôi bị lạc. Tôi gọi chức năng này:
def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
staticNames
đề cập đến từ điển chứa các đối tượng tên/phạm vi. Tôi mong đợi
staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
0 sẽ chứa một đối tượng loại staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
1. Nhưng than ôi nó chứa một chuỗi. Tôi đang làm gì sai? W3Schools được tối ưu hóa cho việc học và đào tạo. Ví dụ có thể được đơn giản hóa để cải thiện việc đọc và học tập. Hướng dẫn, tài liệu tham khảo và ví dụ được xem xét liên tục để tránh lỗi, nhưng chúng tôi không thể đảm bảo tính chính xác đầy đủ của tất cả các nội dung. Trong khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng, cookie và chính sách bảo mật của chúng tôi.
Bản quyền 1999-2022 bởi dữ liệu refsnes. Đã đăng ký Bản quyền. W3Schools được cung cấp bởi W3.CSS.
W3Schools is Powered by W3.CSS.
Danh sách tương đương với các mảng trong các ngôn ngữ khác, với lợi ích bổ sung là kích thước năng động. Trong Python, danh sách này là một loại container trong các cấu trúc dữ liệu, được sử dụng để lưu trữ nhiều dữ liệu cùng một lúc. Không giống như các bộ, danh sách trong Python được đặt hàng và có số lượng xác định.
Có nhiều cách để lặp lại một danh sách trong Python. Hãy cùng xem tất cả các cách khác nhau để lặp lại một danh sách trong Python và so sánh hiệu suất giữa chúng.
Phương pháp số 1: Sử dụng cho Loop & NBSP; Using For loop
Python3
Is
def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
5 def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
6def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
7 staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
2def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
91 3 5 7 90
1 3 5 7 91
1 3 5 7 92
Output:
1 3 5 7 9
Phương pháp số 2: Đối với vòng lặp và phạm vi [] trong trường hợp chúng tôi muốn sử dụng vòng lặp truyền thống cho vòng lặp từ số X đến số Y. & NBSP; & NBSP;For loop and range[]
In case we want to use the traditional for loop
which iterates from number x to number y.
Python3
Is
1 3 5 7 96
staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
3 1 3 5 7 98
1 3 5 7 99__12
def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
5 def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
6def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
7 1 3 5 7 95
1 3 5 7 96
1 3 5 7 90
1 3 5 7 91
1 3 5 7 99
staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
21 3 5 7 91
Output:
1 3 5 7 9
Việc lặp lại bằng cách sử dụng chỉ mục không được khuyến nghị nếu chúng ta có thể lặp lại các phần tử [như được thực hiện trong Phương pháp #1].
Method #3: Using while loop
Python3
Is
1 3 5 7 96
staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
3 1 3 5 7 98
1 3 5 7 99__12
def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
5 def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
6def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
7 1 3 5 7 95
1 3 5 7 96
Việc lặp lại bằng cách sử dụng chỉ mục không được khuyến nghị nếu chúng ta có thể lặp lại các phần tử [như được thực hiện trong Phương pháp #1].
1 3 5 7 90
1 3 5 7 91
1 3 5 7 99
staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
21 3 5 7 91
def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
6staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
3 0 1 2 3 4 5 6 7 83
Output:
1 3 5 7 9
0
1
2
3
4
5
6
7
8
4 0
1
2
3
4
5
6
7
8
5 Using list comprehension [Possibly the most concrete way].
Python3
Is
1 3 5 7 90
def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
6staticNames
3staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
3 staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
5Output:
1 3 5 7 9
Phương pháp số 4: Sử dụng danh sách hiểu [có thể là cách cụ thể nhất]. & Nbsp; & nbsp; Using enumerate[]
If we want to convert the list into an iterable list of tuples [or get the index based on a condition check, for example in linear search you might need to save the index of minimum element], you
can use the enumerate[] function.
Python3
Is
def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
5 staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
31def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
7 staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
331 3 5 7 99__12
1 3 5 7 90
1 3 5 7 91
staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
39staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
40staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
41Output:
0 , 1 1 , 3 2 , 5 3 , 7 4 , 9
Lưu ý: Ngay cả Phương pháp #2 có thể được sử dụng để tìm chỉ mục, nhưng Phương pháp số 1 không thể [trừ khi một biến bổ sung được tăng lên mỗi lần lặp] và Phương thức #5 đưa ra biểu diễn ngắn gọn của việc lập chỉ mục này. & NBSP; & NBSP; & NBSP; #6: Sử dụng Numpyfor Danh sách N chiều rất lớn [ví dụ: mảng hình ảnh], đôi khi tốt hơn là sử dụng một thư viện bên ngoài như Numpy. & NBSP;Even method #2 can be used to find the index, but method #1 can’t [Unless an extra
variable is incremented every iteration] and method #5 gives a concise representation of this indexing.
Method #6: Using numpy
For very large n-dimensional lists [for example an image array], it is sometimes better to use an external library such as numpy.
Python3
staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
42 staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
43staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
44staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
3 staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
46def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
31 3 5 7 91
staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
44staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
3 staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
51staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
7staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
6staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
71 3 5 7 91
def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
5 staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
57def updateStaticNames[ws, r, c, val_in, staticNames]:
for sName in staticNames:
if sName.refersToR1C1[] == "=" + ws.Name + "!R" + str[r] + "C" + str[c]:
sName.value = val_in
return None
7 staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
591 3 5 7 90
1 3 5 7 91
staticNames = {}
wbNames = wb.Names
for name in wbNames:
[nSheet, nAddr] = name.RefersTo.split["!"]
print "Name: %s Refers to: %s Refers to R1C1: %s Value: %s " % [name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', '']].Range[nAddr].value]
staticNames[name.Name] = varName[name.Name, name.RefersTo, name.RefersToR1C1, wSheets[nSheet.replace['=', ''] ].Range[nAddr].value]
62Output:
0 1 2 3 4 5 6 7 8
Chúng ta có thể sử dụng np.ndenumerate [] để bắt chước hành vi liệt kê. Sức mạnh bổ sung của Numpy xuất phát từ thực tế là chúng ta thậm chí có thể kiểm soát cách truy cập các yếu tố [thứ tự Fortran chứ không phải là thứ tự C, giả sử :]] Nhưng một cảnh báo là NP.nditer coi mảng chỉ đọc Mặc định, do đó, người ta phải chuyển các cờ bổ sung như op_flags = ['readWrite'] để nó có thể sửa đổi các phần tử. & nbsp;