Python 将列表项复制到另一个列表项的优雅方式
我想从给定的嵌套Python 将列表项复制到另一个列表项的优雅方式,python,Python,我想从给定的嵌套列表中复制前两个列表。我做了以下工作: list = [[10,20],[30,40,50],[0,0],[1,2,3]] sList = [] x = 0 for i in list: if x == 2: break sList.append(i) x+=1 print ("%s" % sList) 我的问题是:还有其他优雅的方式吗 您可以使用切片: sList = list[:2] 您可以使用切片: sList = list[:2
列表中复制前两个列表。我做了以下工作:
list = [[10,20],[30,40,50],[0,0],[1,2,3]]
sList = []
x = 0
for i in list:
if x == 2:
break
sList.append(i)
x+=1
print ("%s" % sList)
我的问题是:还有其他优雅的方式吗 您可以使用切片:
sList = list[:2]
您可以使用切片:
sList = list[:2]
只需使用切片即可从列表中获取前两项。另外,不要使用列表,因为它会遮挡内置的列表
:
list_ = [[10,20],[30,40,50],[0,0],[1,2,3]]
print(list_[:2])
输出:
[[10, 20], [30, 40, 50]]
考虑切片的简单方法如下:
list_[start:end:step]
此外,正如我清楚地了解到的,您希望实际将这些数据提取到一个单独的列表中。因此,您可能希望使用复制模块,并使用
根据文件:
对于可变或包含可变项的集合,可以创建副本
有时需要,这样就可以在不更改副本的情况下更改一份副本
其他的
因此,您的代码可以如下所示:
from copy import deepcopy
sub_list = deepcopy(list_[:2])
只需使用切片即可从列表中获取前两项。另外,不要使用列表,因为它会遮挡内置的列表
:
list_ = [[10,20],[30,40,50],[0,0],[1,2,3]]
print(list_[:2])
输出:
[[10, 20], [30, 40, 50]]
考虑切片的简单方法如下:
list_[start:end:step]
此外,正如我清楚地了解到的,您希望实际将这些数据提取到一个单独的列表中。因此,您可能希望使用复制模块,并使用
根据文件:
对于可变或包含可变项的集合,可以创建副本
有时需要,这样就可以在不更改副本的情况下更改一份副本
其他的
因此,您的代码可以如下所示:
from copy import deepcopy
sub_list = deepcopy(list_[:2])
以你为例,就
sList = [oList[0], oList[1]]
或同等地
sList = oList[:2]
在您的示例代码列表中,sList指的是与原始列表相同的列表(绝对不应称为list
)-如果您确实需要副本,请使用
sList = [list(e) for e in oList[:2]]
要复制嵌套列表,例如,只需
sList = [oList[0], oList[1]]
或同等地
sList = oList[:2]
在您的示例代码列表中,sList指的是与原始列表相同的列表(绝对不应称为list
)-如果您确实需要副本,请使用
sList = [list(e) for e in oList[:2]]
要复制嵌套列表,只需获取一个列表切片即可
Slist = list[0:2]
你可以只取一个列表片段
Slist = list[0:2]
请注意,[:]
复制列表,因此“我的列表”或“切片的列表”的前两个元素中的任何更改都不会反映在另一个元素中(与简单切片不同)
my_list[:2]
从列表中选择前两个子列表
如本例所示,切片指的是实际的子列表,而不是副本
使用[:]
使用切片
请注意,[:]
复制列表,因此“我的列表”或“切片的列表”的前两个元素中的任何更改都不会反映在另一个元素中(与简单切片不同)
my_list[:2]
从列表中选择前两个子列表
如本例所示,切片指的是实际的子列表,而不是副本
使用[:]
使用切片
我想得到前两个列表[10,20],[30,40,50]
。换句话说,提取前两个列表。我的上述方法似乎不优雅,我不知道如何制作better@FriddyJoe,您想要子列表的实际副本还是仅仅是子列表的引用?我想要得到前两个列表[10,20],[30,40,50]
。换句话说,提取前两个列表。我的上述方法似乎不优雅,我不知道如何制作better@FriddyJoe,您是想要子列表的实际副本,还是只想要子列表的引用?这真是太好了。我有一种预感,Python会包含一些优雅的东西,但由于我是一个初学者,所以我无法获得它。谢谢:)打印(“%s”%sList)有什么意义。为什么不直接打印sList
?使代码与原始代码更相似。。与我将var命名为sList
而不是sub_list
的原因相同,可能最好不要它,或者解释为什么不需要它。仅仅使用它,就意味着打印列表是必要的。这有点误导,因为您的解决方案与原始问题中的代码有多大的不同。这真的很优雅。我有一种预感,Python会包含一些优雅的东西,但由于我是一个初学者,所以我无法获得它。谢谢:)打印(“%s”%sList)有什么意义。为什么不直接打印sList
?使代码与原始代码更相似。。与我将var命名为sList
而不是sub_list
的原因相同,可能最好不要它,或者解释为什么不需要它。仅仅使用它,就意味着打印列表是必要的。这有点误导,因为你的解决方案与原始问题中的代码有多大的不同。如果OP真的需要副本或列表(map(list,(l[:2]))
,那么你可能需要copy.deepcopy(l[:2])
,你是对的。我现在明白了,他们实际上正在创建一个新的列表。我以为他们只是出于某种原因才打印出来的。我已经更新了@PadraicCunningham。再次感谢。你对我的其他答案提出了一些其他的好的修改。非常感谢您的修改。如果OP真的想要一份,您可能需要copy.deepcopy(l[:2])
或者list(map(list,(l[:2]))
您是对的。我现在明白了,他们实际上正在创建一个新的列表。我以为他们只是出于某种原因才打印出来的。我已经更新了@PadraicCunningham。再次感谢。你对我的其他答案提出了一些其他的好的修改。非常感谢您的修改。