如何在Python中使用For循环创建列表?

时间:2020-10-18 14:35:59

标签: python loops for-loop

我有一个数据集,并且一个样本看起来像这样:

ID_1    ID_2    
97353   959
9723    168
128     743512
124564  14599
16149   14149

我正在尝试使用for循环创建一个列表,该列表将在同一行上组合ID并产生例如:

[[97353, 959], [9723, 168]...]

到目前为止,我已经写过:

list1 = []
for i in df:
    list1.append(i)

但是,这只会产生如下输出:

['9', '7', '3', '5', '3', '\t', '9', '5', '9', '\n',...

有人可以建议如何修改for循环以产生我想要获得的输出吗?谢谢!

4 个答案:

答案 0 :(得分:1)

将每个列提取为列表,然后使用zip列表理解或在zip对象上使用list创建列表的列表。例如,您可以从两个列表中以所需的形式获取数据。

l1 = [1,2,3,4,5]
l2 = [6,7,8,9,10]

您可以使用以下任一表达式获取所需内容

list(zip(l1,l2))

[[x,y] for x, y in zip(l1,l2)] 

如果您使用的是熊猫,则可以像这样将列提取为列表

ID_1_list = df['ID_1'].tolist()
ID_2_list = df['1D_2'].tolist()

只需将df替换为数据框的名称即可。

将以上所有内容放在一起:

ID_1_list = df['ID_1'].tolist()
ID_2_list = df['1D_2'].tolist()
my_data = list(zip(ID_1_list, ID_2_list))

答案 1 :(得分:0)

假设它为熊猫数据框,请尝试以下操作:

data = {'ID_1': [97353, 9723, 128, 124564],
    'ID_2': [959, 19, 20, 18]
    }
df = pd.DataFrame(data, columns=['ID_1','ID_2'])
list1 = []
for i in range(len(df)) : 
  list1.append([df.loc[i, "ID_1"], df.loc[i, "ID_2"]])
print (list1)
##[[97353, 959], [9723, 19], [128, 20], [124564, 18]]

答案 2 :(得分:0)

下面的代码应该可以工作。

list1 = []
f = open("file.txt", "r") 
next(f)
for i in f:
  words = i.split()
  for j in range(0, len(words)): 
    words[j] = int(words[j])  
    list1.append(words)

print(list1) 

答案 3 :(得分:0)

您可以将它们打印为列表中的元组

/**
 * @ORM\OneToOne(targetEntity="App\Entity\StockPriceImportExecutions", mappedBy="import")
 * @ORM\OrderBy({"startedAt" = "DESC"})
 */
private $lastExecution;

输出:

[(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e')]