Khi tôi cần thêm một số mục giống hệt nhau vào danh sách, tôi sử dụng danh sách.extend:
a = ['a', 'b', 'c']
a.extend[['d']*3]
Kết quả
['a', 'b', 'c', 'd', 'd', 'd']
Nhưng, làm thế nào để làm tương tự với sự hiểu biết danh sách?
a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
Kết quả
[['a', 'a'], ['b', 'b'], ['c']]
Nhưng, làm thế nào để làm tương tự với sự hiểu biết danh sách?
['a', 'a', 'b', 'b', 'c']
Nhưng tôi cần cái này
Bất kỳ ý tưởng?Oct 10, 2010 at 8:49
0
Hỏi ngày 10 tháng 10 năm 2010 lúc 8:49
[y for x in a for y in [x[0]] * x[1]]
Xếp chồng LCS.Oct 10, 2010 at 8:51
5
Đã trả lời ngày 10 tháng 10 năm 2010 lúc 8:51
Cách tiếp cận itertools:import itertools
def flatten[it]:
return itertools.chain.from_iterable[it]
pairs = [['a',2], ['b',2], ['c',1]]
flatten[itertools.repeat[item, times] for [item, times] in pairs]
# ['a', 'a', 'b', 'b', 'c']
Oct 10, 2010 at 9:01
Đã trả lời ngày 10 tháng 10 năm 2010 lúc 9:01tokland
Toklandtokland13 gold badges139 silver badges169 bronze badges
0
64,8K13 Huy hiệu vàng139 Huy hiệu bạc169 Huy hiệu đồng
>>> a = [['a',2], ['b',2], ['c',1]]
>>> [i for i, n in a for k in range[n]]
['a', 'a', 'b', 'b', 'c']
Oct 10, 2010 at 8:52
Đã trả lời ngày 10 tháng 10 năm 2010 lúc 8:52sdcvvc
SDCVVCSDCVVC4 gold badges64 silver badges102 bronze badges
25.2k4 Huy hiệu vàng64 Huy hiệu bạc102 Huy hiệu đồng
a = []
for x, y in l:
a.extend[[x]*y]
Nếu bạn thích mở rộng hơn toàn bộ danh sách:Oct 10, 2010 at 11:47
Đã trả lời ngày 10 tháng 10 năm 2010 lúc 11:47dheerosaur
Dheerosaurdheerosaur6 gold badges30 silver badges31 bronze badges
1
>>> a = [['a',2], ['b',2], ['c',1]]
>>> sum[[[item]*count for item,count in a],[]]
['a', 'a', 'b', 'b', 'c']
14.2k6 Huy hiệu vàng30 Huy hiệu bạc31 Huy hiệu ĐồngOct 10, 2010 at 10:50
Đã trả lời ngày 10 tháng 10 năm 2010 lúc 10:50PaulMcG
Paulmcgpaulmcg15 gold badges90 silver badges127 bronze badges
['a', 'b', 'c', 'd', 'd', 'd']
060.8K15 Huy hiệu vàng90 Huy hiệu bạc127 Huy hiệu đồngOct 10, 2010 at 8:55
Đã trả lời ngày 10 tháng 10 năm 2010 lúc 8:55Richard Fearn
Richard Fearnrichard Fearn7 gold badges58 silver badges55 bronze badges
1
Phương thức Danh sách Python mở rộng [] lặp đi lặp lại trên một chuỗi giống như chuỗi, danh sách, tuple, v.v., và thêm từng yếu tố của ITEBELBE vào cuối danh sách, sửa đổi danh sách ban đầu.extend[]method iterates over an iterable like string, list, tuple, etc., and adds each element of the iterable to the end of the List, modifying the original list.
Python Danh sách mở rộng [] Cú pháp:
Cú pháp: list.extend [có thể điều chỉnh được]list.extend[iterable]
Parameters:
- Có thể lặp lại: Bất kỳ sự khác biệt nào [danh sách, bộ, tuple, v.v.] Any iterable [list, set, tuple, etc.]
Trả lại: Không cóNone
Python Danh sách mở rộng [] Ví dụ:
Python3
['a', 'b', 'c', 'd', 'd', 'd']
4['a', 'b', 'c', 'd', 'd', 'd']
5 ['a', 'b', 'c', 'd', 'd', 'd']
6['a', 'b', 'c', 'd', 'd', 'd']
7['a', 'b', 'c', 'd', 'd', 'd']
8['a', 'b', 'c', 'd', 'd', 'd']
9['a', 'b', 'c', 'd', 'd', 'd']
8a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
1a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
2a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
3a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
4['a', 'b', 'c', 'd', 'd', 'd']
8a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
6['a', 'b', 'c', 'd', 'd', 'd']
8a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
8a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
9[['a', 'a'], ['b', 'b'], ['c']]
0[['a', 'a'], ['b', 'b'], ['c']]
1Output:
['a', 'b', 'c', 'd', 'd', 'd']
1Ví dụ 1: Thêm các yếu tố của tuple và đặt vào danh sáchAdd Elements of Tuple and Set to List
Sử dụng Phương thức Danh sách mở rộng [] để thêm các phần tử từ Tuple hoặc đặt thành Danh sách.
Python
[['a', 'a'], ['b', 'b'], ['c']]
2['a', 'b', 'c', 'd', 'd', 'd']
5 ['a', 'b', 'c', 'd', 'd', 'd']
6[['a', 'a'], ['b', 'b'], ['c']]
5['a', 'b', 'c', 'd', 'd', 'd']
8[['a', 'a'], ['b', 'b'], ['c']]
7['a', 'b', 'c', 'd', 'd', 'd']
8[['a', 'a'], ['b', 'b'], ['c']]
5a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
2['a', 'a', 'b', 'b', 'c']
1['a', 'b', 'c', 'd', 'd', 'd']
5 ['a', 'a', 'b', 'b', 'c']
3['a', 'a', 'b', 'b', 'c']
4['a', 'b', 'c', 'd', 'd', 'd']
8['a', 'a', 'b', 'b', 'c']
6['a', 'a', 'b', 'b', 'c']
7['a', 'a', 'b', 'b', 'c']
8['a', 'b', 'c', 'd', 'd', 'd']
5 [y for x in a for y in [x[0]] * x[1]]
0[y for x in a for y in [x[0]] * x[1]]
1____['a', 'b', 'c', 'd', 'd', 'd']
8[y for x in a for y in [x[0]] * x[1]]
3[y for x in a for y in [x[0]] * x[1]]
4[y for x in a for y in [x[0]] * x[1]]
5[['a', 'a'], ['b', 'b'], ['c']]
0[y for x in a for y in [x[0]] * x[1]]
7[y for x in a for y in [x[0]] * x[1]]
8[['a', 'a'], ['b', 'b'], ['c']]
0[y for x in a for y in [x[0]] * x[1]]
7Output:
['a', 'b', 'c', 'd', 'd', 'd']
2Ví dụ 2: Mở rộng chuỗi vào danh sách to the List
Một chuỗi có thể sử dụng được, vì vậy nếu bạn mở rộng một danh sách với một chuỗi, bạn sẽ nối mỗi ký tự khi bạn lặp lại trong chuỗi.
Python3
[['a', 'a'], ['b', 'b'], ['c']]
2['a', 'b', 'c', 'd', 'd', 'd']
5 ['a', 'b', 'c', 'd', 'd', 'd']
6[['a', 'a'], ['b', 'b'], ['c']]
5['a', 'b', 'c', 'd', 'd', 'd']
8[['a', 'a'], ['b', 'b'], ['c']]
7['a', 'b', 'c', 'd', 'd', 'd']
8a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
8['a', 'b', 'c', 'd', 'd', 'd']
8__>>> a = [['a',2], ['b',2], ['c',1]]
>>> [i for i, n in a for k in range[n]]
['a', 'a', 'b', 'b', 'c']
6[['a', 'a'], ['b', 'b'], ['c']]
5['a', 'a', 'b', 'b', 'c']
7[['a', 'a'], ['b', 'b'], ['c']]
0[y for x in a for y in [x[0]] * x[1]]
7Output:
['a', 'b', 'c', 'd', 'd', 'd']
3