Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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_Python 3.x_List_List Comprehension - Fatal编程技术网

Python 如何将两列常量添加到指定位置的列表中?

Python 如何将两列常量添加到指定位置的列表中?,python,python-3.x,list,list-comprehension,Python,Python 3.x,List,List Comprehension,我想在第一列和第二列的列表中添加两列常量 我写了2个循环,因为我想添加2列 我使用以下代码: list_a=[[1,'aa'],[2,'bb'],[3,'cc'],[4,'dd']] constant1=2018 constant2=30 for item in list_a: item.insert(0,constant1) for item in list_a: item.insert(1,constant2) print(list_a) 输出为: [[2018, 30,

我想在第一列和第二列的列表中添加两列常量

我写了2个循环,因为我想添加2列

我使用以下代码:

list_a=[[1,'aa'],[2,'bb'],[3,'cc'],[4,'dd']]
constant1=2018
constant2=30
for item in list_a:
    item.insert(0,constant1)
for item in list_a:
    item.insert(1,constant2)
print(list_a)
输出为:

[[2018, 30, 1, 'aa'], [2018, 30, 2, 'bb'], [2018, 30, 3, 'cc'], [2018, 30, 4, 'dd']]

但我认为这不是一个好主意,还有其他方法吗?

如果您可以创建一个新列表而不是将其更改到位,并且不介意安装一个额外的包,那么使用pandas dataframe很容易。如果你在大桌子上工作,强烈推荐熊猫。为了简单起见,我假设列是类型化的,在您的示例中就是这样

下面的代码基于

从数据帧向后转换到列表有点慢,因为 因为一旦一个人尝到了使用数据帧的滋味,他就不想回到嵌套列表

虽然我将其保留在您的解决方案附近,但Pandas非常灵活,或者,您可以创建一个包含两列的数据帧并将其连接起来,如果您喜欢一行,请参见

如果仅限于标准列表操作,或更愿意在适当的位置修改列表。一个循环就足够了

for item in list_a:
   item.insert(0, constant2)
   item.insert(0, constant1)
一行换一行

for (i, item) in enumerate(list_a):
    list_a[i] = [constant1, constant2].extend(item)

如果您可以创建一个新列表,而不是就地更改列表,并且更喜欢使用标准列表操作,那么列表理解将比循环更加紧凑,甚至略快。

您可以使用列表理解:

res = [[2018, 30, *v] for v in list_a]

[[2018, 30, 1, 'aa'],
 [2018, 30, 2, 'bb'],
 [2018, 30, 3, 'cc'],
 [2018, 30, 4, 'dd']]
在这方面,使运营“到位”没有明显的优势。无论哪种方式,您都具有相同的时间复杂性

res = [[2018, 30, *v] for v in list_a]

[[2018, 30, 1, 'aa'],
 [2018, 30, 2, 'bb'],
 [2018, 30, 3, 'cc'],
 [2018, 30, 4, 'dd']]