Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表项复制到另一个列表项的优雅方式_Python - Fatal编程技术网

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。再次感谢。你对我的其他答案提出了一些其他的好的修改。非常感谢您的修改。