Hướng dẫn how to change the variable name in python - cách đổi tên biến trong python

Tôi chỉ tự hỏi nếu có ai biết cách thay đổi tên biến dựa trên vòng lặp cho một cái gì đó như thế này:

for i in range[3]
     group+i=self.getGroup[selected, header+i]

sao cho tên của các biến thay đổi để chứa dữ liệu. Cảm ơn!

~Sam

S.Lott

378K79 Huy hiệu vàng503 Huy hiệu bạc773 Huy hiệu Đồng79 gold badges503 silver badges773 bronze badges

Đã hỏi ngày 29 tháng 6 năm 2009 lúc 19:38Jun 29, 2009 at 19:38

1

Bạn có thể muốn một dict thay vì các biến riêng biệt. Ví dụ

d = {}
for i in range[3]:
    d["group" + str[i]] = self.getGroup[selected, header+i]

Nếu bạn nhấn mạnh vào việc sửa đổi các biến cục bộ, bạn có thể sử dụng hàm

d = {}
for i in range[3]:
    d["group" + str[i]] = self.getGroup[selected, header+i]
2:

for i in range[3]:
    locals[]["group"+str[i]] = self.getGroup[selected, header+i]

Mặt khác, nếu những gì bạn thực sự muốn là sửa đổi các biến thể hiện của lớp bạn đang ở, thì bạn có thể sử dụng hàm

d = {}
for i in range[3]:
    d["group" + str[i]] = self.getGroup[selected, header+i]
3

for i in group[3]:
    setattr[self, "group"+str[i], self.getGroup[selected, header+i]

Và tất nhiên, tôi giả sử với tất cả các ví dụ mà bạn không chỉ muốn một danh sách:

groups = [self.getGroup[i,header+i] for i in range[3]]

Đã trả lời ngày 29 tháng 6 năm 2009 lúc 19:43Jun 29, 2009 at 19:43

Eli Courtwrighteli CourtwrightEli Courtwright

Phim thương hiệu vàng 180K6666 gold badges209 silver badges256 bronze badges

2

Sử dụng một danh sách.

groups = [0]*3
for i in xrange[3]:
    groups[i] = self.getGroup[selected, header + i]

hoặc nhiều hơn "pythonical":

groups = [self.getGroup[selected, header + i] for i in xrange[3]]

Đối với những gì nó có giá trị, bạn có thể cố gắng tạo các biến theo cách "sai", tức là bằng cách sửa đổi từ điển giữ các giá trị của chúng:

l = locals[]
for i in xrange[3]:
    l['group' + str[i]] = self.getGroup[selected, header + i]

Nhưng đó thực sự là hình thức xấu, và thậm chí có thể không được đảm bảo để làm việc.

Đã trả lời ngày 29 tháng 6 năm 2009 lúc 19:45Jun 29, 2009 at 19:45

David Zdavid zDavid Z

125K26 Huy hiệu vàng249 Huy hiệu bạc275 Huy hiệu Đồng26 gold badges249 silver badges275 bronze badges

Chắc chắn nên sử dụng một dict bằng cách sử dụng khóa "nhóm" + str [i] như được mô tả trong giải pháp được chấp nhận nhưng tôi muốn chia sẻ một giải pháp bằng Exec. Đó là một cách để phân tích các chuỗi vào các lệnh và thực thi chúng một cách linh hoạt. Nó sẽ cho phép tạo các tên biến vô hướng này theo yêu cầu của bạn thay vì sử dụng một dict. Điều này có thể giúp liên quan đến những gì không nên làm, và chỉ vì bạn không thể có nghĩa là bạn nên làm. Đó là một giải pháp tốt chỉ khi sử dụng các biến vô hướng là một yêu cầu khó:

l = locals[]
for i in xrange[3]:
    exec["group" + str[i] + "= self.getGroup[selected, header + i]"]

Một ví dụ khác trong đó điều này có thể hoạt động bằng ví dụ mô hình Django. Giải pháp thay thế EXEC được nhận xét và cách xử lý trường hợp như vậy tốt hơn bằng cách sử dụng thuộc tính Dict có ý nghĩa hơn:dict attribute makes more sense:

Class A[models.Model]:

    ....

    def __getitem__[self, item]:  # a.__getitem__['id']
        #exec["attrb = self." + item]
        #return attrb
        return self.__dict__[item]

Nó có thể có ý nghĩa hơn để mở rộng từ một từ điển ở nơi đầu tiên để có được các hàm SETATTR và GETATTR.

Một tình huống liên quan đến phân tích cú pháp, ví dụ như tạo và thực thi các lệnh Python một cách linh hoạt, Exec là những gì bạn muốn :] Thêm trên Exec ở đây.

Đã trả lời ngày 29 tháng 5 năm 2014 lúc 15:52May 29, 2014 at 15:52

Radtekradtekradtek

32.6K11 Huy hiệu vàng139 Huy hiệu bạc110 Huy hiệu đồng11 gold badges139 silver badges110 bronze badges

Có vẻ như bạn muốn sử dụng một danh sách thay thế:

d = {}
for i in range[3]:
    d["group" + str[i]] = self.getGroup[selected, header+i]
0

Mark Roddy

26.4K19 Huy hiệu vàng66 Huy hiệu bạc71 Huy hiệu đồng19 gold badges66 silver badges71 bronze badges

Đã trả lời ngày 29 tháng 6 năm 2009 lúc 19:43Jun 29, 2009 at 19:43

Eli Courtwrighteli CourtwrightGreg Hewgill

Phim thương hiệu vàng 180K66178 gold badges1134 silver badges1268 bronze badges

2

Sử dụng một danh sách.

d = {}
for i in range[3]:
    d["group" + str[i]] = self.getGroup[selected, header+i]
1

hoặc nhiều hơn "pythonical":

Đối với những gì nó có giá trị, bạn có thể cố gắng tạo các biến theo cách "sai", tức là bằng cách sửa đổi từ điển giữ các giá trị của chúng:Jun 29, 2009 at 19:44

Nhưng đó thực sự là hình thức xấu, và thậm chí có thể không được đảm bảo để làm việc.eduffy

Đã trả lời ngày 29 tháng 6 năm 2009 lúc 19:4512 gold badges93 silver badges91 bronze badges

1

Tôi có thể thay đổi một tên biến trong Python không?

Khi một biến được khai báo, bạn không thể thay đổi tên của nó.Tuy nhiên, bạn có thể sao chép nội dung của biến vào một biến khác.. However, you can copy the contents of the variable into another variable.

Bạn có thể đặt tên cho một ID biến trong Python không?

ID [] là một hàm trong Python, vì vậy bạn nên không sử dụng một biến có tên ID.Ghi nhớ điều đó, áp dụng cho tất cả các chức năng mà bạn có thể sử dụng ... một biến không nên có cùng tên với một hàm.it's recommend not to use a variable named id. Bearing that in mind, that applies to all functions that you might use... a variable shouldn't have the same name as a function.

Bài Viết Liên Quan

Chủ Đề