Tôi đang cố gắng nối một phần tử float mới vào danh sách trong danh sách khác, ví dụ:
list = [[]]*2
list[1].append[2.5]
Và tôi nhận được như sau:
print list
[[2.5], [2.5]]
Khi tôi muốn nhận được:
[[], [2.5]]
Tôi có thể làm cái này như thế nào?
Cảm ơn trước.
Hỏi ngày 25 tháng 7 năm 2011 lúc 10:29Jul 25, 2011 at 10:29
2
print list
[[2.5], [2.5]]
1 [hoặc chỉ print list
[[2.5], [2.5]]
2]. Không sử dụng phép nhân với các đối tượng có thể thay đổi - bạn có cùng một lần x lần, không phải x khác.Đã trả lời ngày 25 tháng 7 năm 2011 lúc 10:32Jul 25, 2011 at 10:32
Cat Plus Plus Plus PlusCat Plus Plus
122K26 Huy hiệu vàng196 Huy hiệu bạc222 Huy hiệu đồng26 gold badges196 silver badges222 bronze badges
7
list_list = [[] for Null in range[2]]
Đừng gọi nó là
print list
[[2.5], [2.5]]
3, điều đó sẽ ngăn bạn gọi chức năng tích hợp print list
[[2.5], [2.5]]
4.Lý do vấn đề của bạn xảy ra là Python tạo ra một danh sách sau đó lặp lại hai lần. Vì vậy, cho dù bạn có liên quan đến nó bằng cách truy cập nó bằng
print list
[[2.5], [2.5]]
5 hoặc với print list
[[2.5], [2.5]]
6, bạn đang làm điều tương tự để các thay đổi của bạn sẽ xuất hiện ở cả hai chỉ mục.one list then repeats it twice. So, whether you append to it by accessing it either with print list
[[2.5], [2.5]]
5 or with print list
[[2.5], [2.5]]
6, you're doing the same thing so your changes will appear at both indexes.Đã trả lời ngày 25 tháng 7 năm 2011 lúc 10:34Jul 25, 2011 at 10:34
Agfagfagf
165K41 Huy hiệu vàng280 Huy hiệu bạc232 Huy hiệu Đồng41 gold badges280 silver badges232 bronze badges
Bạn có thể làm một cách đơn giản nhất ....
>>> list = [[]]*2
>>> list[1] = [2.5]
>>> list
[[], [2.5]]
Đã trả lời ngày 21 tháng 10 năm 2011 lúc 8:58Oct 21, 2011 at 8:58
list = [[]]
list.append[[2.5]]
hoặc
list = [[],[]]
list[1].append[2.5]
Đã trả lời ngày 25 tháng 7 năm 2011 lúc 10:32Jul 25, 2011 at 10:32
Cat Plus Plus Plus PlusMatt Ball
122K26 Huy hiệu vàng196 Huy hiệu bạc222 Huy hiệu đồng98 gold badges636 silver badges699 bronze badges
0
Đừng gọi nó là
print list
[[2.5], [2.5]]
3, điều đó sẽ ngăn bạn gọi chức năng tích hợp print list
[[2.5], [2.5]]
4.>>> list[0] is list[1]
... True
>>> list[0] is []
... False
Lý do vấn đề của bạn xảy ra là Python tạo ra một danh sách sau đó lặp lại hai lần. Vì vậy, cho dù bạn có liên quan đến nó bằng cách truy cập nó bằng
print list
[[2.5], [2.5]]
5 hoặc với print list
[[2.5], [2.5]]
6, bạn đang làm điều tương tự để các thay đổi của bạn sẽ xuất hiện ở cả hai chỉ mục.Đã trả lời ngày 25 tháng 7 năm 2011 lúc 10:34Jul 25, 2011 at 10:35
AgfagfWebthusiast
165K41 Huy hiệu vàng280 Huy hiệu bạc232 Huy hiệu Đồng10 silver badges16 bronze badges
0
Bạn có thể làm một cách đơn giản nhất ....
>> list = [[],[]]
>> list[1].append[2.5]
>> list
>> [[],[2.5]]
Đã trả lời ngày 21 tháng 10 năm 2011 lúc 8:58Jul 25, 2011 at 12:08
hoặcShashi
Matt Ballmatt Ball2 gold badges21 silver badges37 bronze badges
349K98 Huy hiệu vàng636 Huy hiệu bạc699 Huy hiệu đồng
>>> l = [[] for _ in xrange[2]]
>>> l[1].append[2.5]
>>> l
[[], [2.5]]
Đã trả lời ngày 25 tháng 7 năm 2011 lúc 10:34Jul 25, 2011 at 10:34
Agfagffransua
165K41 Huy hiệu vàng280 Huy hiệu bạc232 Huy hiệu Đồng13 silver badges28 bronze badges
Bạn có thể làm một cách đơn giản nhất ....
print list
[[2.5], [2.5]]
0Đã trả lời ngày 21 tháng 10 năm 2011 lúc 8:58
hoặcJul 25, 2011 at 10:37
Matt Ballmatt BallNiklas R
349K98 Huy hiệu vàng636 Huy hiệu bạc699 Huy hiệu đồng25 gold badges97 silver badges199 bronze badges
2