如何使用列表理解将列表附加到现有列表
How to append lists using list comprehension to an exsiting list
我想将项目附加到 现有 列表中,这些列表是通过列表理解生成的单个列表。
source = [1,2,3,4,5]
我希望结果看起来像 [[2], [4]]
我尝试了以下方法(以及“[]”和“()”的其他疯狂组合,但一无所获)...
target = []
target.append([r for r in source if r == 2 or r == 4])
print(target)
[[2, 4]]
target = []
target.append([[r] for r in source if r == 2 or r == 4])
print(target)
[[[2], [4]]]
target = []
target.append([r] for r in source if r == 2 or r == 4)
print(target)
[<generator object <genexpr> at 0x0000022F1986E4C8>]
只需使用 extend
进行此列表理解:
target.extend([[r] for r in source if r in [2, 4]])
现在 target
将是:
[[2], [4]]
您可以改用list.extend
方法:
target.extend([r] for r in source if r == 2 or r == 4)
而不是 .append()
去 .extend
:
source = [1,2,3,4,5]
target=[]
target.extend([t] for t in source if t==2 or t==4)
print(target)
就这样做
source = [1,2,3,4,5]
target = [[r] for r in source if r==2 or r==4]
print(target)
# output: [[2], [4]]
如果目标列表不为空并且你想追加新值,你可以试试这个
source = [1,2,3,4,5]
target = [[7],[8]]
target.extend([[r] for r in source if r==2 or r==4])
print(target)
# output: [[7], [8], [2], [4]]
或
source = [1,2,3,4,5]
target = [[7],[8]]
target += [[r] for r in source if r==2 or r==4]
print(target)
# output: [[7], [8], [2], [4]]
您可以使用 .extend()
而不是 .append()
:
source = [1, 2, 3, 4, 5]
target = []
target.extend([r] for r in source if r == 2 or r == 4)
print(target)
# [[2], [4]]
在这种情况下可以使用 .extend()
,因为它接收一个可迭代对象作为参数。
我想将项目附加到 现有 列表中,这些列表是通过列表理解生成的单个列表。
source = [1,2,3,4,5]
我希望结果看起来像 [[2], [4]]
我尝试了以下方法(以及“[]”和“()”的其他疯狂组合,但一无所获)...
target = []
target.append([r for r in source if r == 2 or r == 4])
print(target)
[[2, 4]]
target = []
target.append([[r] for r in source if r == 2 or r == 4])
print(target)
[[[2], [4]]]
target = []
target.append([r] for r in source if r == 2 or r == 4)
print(target)
[<generator object <genexpr> at 0x0000022F1986E4C8>]
只需使用 extend
进行此列表理解:
target.extend([[r] for r in source if r in [2, 4]])
现在 target
将是:
[[2], [4]]
您可以改用list.extend
方法:
target.extend([r] for r in source if r == 2 or r == 4)
而不是 .append()
去 .extend
:
source = [1,2,3,4,5]
target=[]
target.extend([t] for t in source if t==2 or t==4)
print(target)
就这样做
source = [1,2,3,4,5]
target = [[r] for r in source if r==2 or r==4]
print(target)
# output: [[2], [4]]
如果目标列表不为空并且你想追加新值,你可以试试这个
source = [1,2,3,4,5]
target = [[7],[8]]
target.extend([[r] for r in source if r==2 or r==4])
print(target)
# output: [[7], [8], [2], [4]]
或
source = [1,2,3,4,5]
target = [[7],[8]]
target += [[r] for r in source if r==2 or r==4]
print(target)
# output: [[7], [8], [2], [4]]
您可以使用 .extend()
而不是 .append()
:
source = [1, 2, 3, 4, 5]
target = []
target.extend([r] for r in source if r == 2 or r == 4)
print(target)
# [[2], [4]]
在这种情况下可以使用 .extend()
,因为它接收一个可迭代对象作为参数。