Hướng dẫn how do you iterate through an array of objects in python? - làm cách nào để bạn lặp qua một mảng đối tượng trong python?

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      
6
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      
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]
2
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      
9

1
3
5
7
9
0
1
3
5
7
9
1
1
3
5
7
9
2

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
9
6
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
9
8
1
3
5
7
9
9__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      
6
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      
7
1
3
5
7
9
5
1
3
5
7
9
6

1
3
5
7
9
0
1
3
5
7
9
1
1
3
5
7
9
9
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]
2
1
3
5
7
9
1

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
9
6
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
9
8
1
3
5
7
9
9__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      
6
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      
7
1
3
5
7
9
5
1
3
5
7
9
6

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
9
0
1
3
5
7
9
1
1
3
5
7
9
9
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]
2
1
3
5
7
9
1

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      
6
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
0
1
2
3
4
5
6
7
8
3

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
9
0
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      
6staticNames3
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
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]
5

Output:  

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]
31
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      
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]
33
1
3
5
7
9
9__12

1
3
5
7
9
0
1
3
5
7
9
1
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]
39
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]
40
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]
41

Output:  

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]
43

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]
44
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
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]
46
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      
3
1
3
5
7
9
1

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]
44
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
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]
51
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]
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]
6
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]
7
1
3
5
7
9
1

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]
57
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      
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]
59

1
3
5
7
9
0
1
3
5
7
9
1
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]
62

Output:  

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;
 


Làm thế nào để bạn lặp lại một loạt các đối tượng trong Python?

Lặp lại qua các mục mảng chiều dài cho chúng tôi tiếp tục vòng lặp miễn là tôi nhỏ hơn chiều dài của mảng [trong trường hợp này là 7].I ++ tương đương với I+1 và có nghĩa là chúng tôi sẽ tăng qua mảng của chúng tôi mỗi lần.Ví dụ, chúng tôi cũng có thể sử dụng I+2 để tiến hành mọi mục khác trong mảng.length tells our for loop to continue as long as i is less than the array's length [in this case, 7]. i++ is equivalent to i+1 and means we're incrementing through our array by one each time. We could also use i+2 to proceed with every other item in the array, for example.

Làm thế nào để bạn lặp lại thông qua một đối tượng trong Python?

Bạn có thể tạo một đối tượng Iterator bằng cách triển khai chức năng tích hợp ITER cho một ITEBLEBLE.Một iterator có thể được sử dụng để lặp thủ công các mục trong Itable.Việc chuyển lặp đi lặp lại của trình lặp đến chức năng tiếp theo tích hợp trả về các mục liên tiếp trong luồng.create an iterator object by implementing the iter built-in function to an iterable. An iterator can be used to manually loop over the items in the iterable. The repeated passing of the iterator to the built-in next function returns successive items in the stream.

Bạn có thể lặp lại thông qua một mảng không?

Lặp lại trên một mảng bạn có thể lặp lại trên một mảng sử dụng cho vòng lặp hoặc vòng foreach.Sử dụng vòng lặp For - Thay vào đó trên phần tử in theo phần tử, bạn có thể lặp chỉ số bằng cách sử dụng vòng lặp bắt đầu từ 0 đến chiều dài của mảng [mảngYou can iterate over an array using for loop or forEach loop. Using the for loop − Instead on printing element by element, you can iterate the index using for loop starting from 0 to length of the array [ArrayName. length] and access elements at each index.

Bài Viết Liên Quan

Chủ Đề