2024-05-08 13:45:24 发布
网友
我的档案如下:
1 99 2 33 3 90 4 25 5 89
我想把1,2,3,4,5解析成list x,把99, 33, 90, 25, 89解析成list y,我该怎么做?你知道吗
1,2,3,4,5
x
99, 33, 90, 25, 89
y
我不明白的是,我只会readline,但不知道如何将其解析为两个列表,我想可能有一种更优雅的方法,除了按空格拆分并将words[0]添加到x和word[1]添加到y
words[0]
word[1]
left_column = [] right_column = [] with open('your_file') as f: reader = csv.reader(f, delimiter=' ') for line in csv_reader: left_column.append(line[0]) right_column.append(line[1])
with open('number-file') as f: x,y = zip(*(map(int, line.split()) for line in f))
会得到你想要的。你知道吗
with open('number-file') as f:
打开一个文件进行读取(代码完成后将其关闭)。然后您可以简单地迭代它。你知道吗
(line.split() for line in f)
是一个generator expression,每行产生两个字符串。对于每一行,map(int, line.split())将这些字符串转换为整数。到目前为止的结果是
map(int, line.split())
[[1, 99], [2, 33], [3, 90], [4, 25], [5, 89]]
使用^{},我们可以将结果列表x和y中子列表的第n个元素连接起来。你知道吗
从技术上讲,x和y现在是tuples(不可变)而不是列表(可以扩展和更改)。在大多数情况下,元组也应该起作用,但是如果您真的需要列表,只需添加
x,y = list(x), list(y)
会得到你想要的。你知道吗
打开一个文件进行读取(代码完成后将其关闭)。然后您可以简单地迭代它。你知道吗
是一个generator expression,每行产生两个字符串。对于每一行,
map(int, line.split())
将这些字符串转换为整数。到目前为止的结果是使用^{} ,我们可以将结果列表
x
和y
中子列表的第n个元素连接起来。你知道吗从技术上讲,x和y现在是tuples(不可变)而不是列表(可以扩展和更改)。在大多数情况下,元组也应该起作用,但是如果您真的需要列表,只需添加
相关问题 更多 >
编程相关推荐