如何在 Python 中通过制表符而不是元素来分隔可迭代对象
How to separate iterables by tab instead of element in Python
我正在尝试构建一个非常简单的程序来转换如下所示的数据:
ID Freq
1 2
2 3
3 4
4 5
5 1
6 1
7 1
8 1
9 1
10 1
11 2
12 2
13 2
14 3
15 3
16 3
17 4
18 5
19 5
20 5
21 5
22 5
23 5
24 5
分为 python 中的两个列表。这是我写的 for 循环:
newlist = []
ID = []
for line in f:
if len(line.strip())>0:
l=line.strip().split("\t")
for i in l[1]:
newlist+=[i]
for i in l[0]:
ID+=[i]
print(newlist)
print(ID)
问题是它将多位数字中的每个数字(例如变量 "ID" 中的 10 及以上)作为单独的元素输出。
例如:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '1', '0', '1', '1', '1', '2', '1', '3', '1', '4', '1', '5', '1', '6', '1', '7', '1', '8', '1', '9', '2', '0', '2', '1', '2', '2', '2', '3', '2', '4']
而不是这个:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24']
我查看了元组的解压缩函数,但这是不同的,因为数据不是元组。相反,问题是让 python 将每个两位数字作为一个可迭代的读取,而不是将每个数字作为一个可迭代的读取。
您不需要那些内部 for
循环。直接添加l
项即可。另外,使用 append
而不是 +=
.
newlist = []
ID = []
for line in f:
if len(line.strip())>0:
l=line.strip().split("\t")
newList.append(l[1])
ID.append(l[0])
我正在尝试构建一个非常简单的程序来转换如下所示的数据:
ID Freq
1 2
2 3
3 4
4 5
5 1
6 1
7 1
8 1
9 1
10 1
11 2
12 2
13 2
14 3
15 3
16 3
17 4
18 5
19 5
20 5
21 5
22 5
23 5
24 5
分为 python 中的两个列表。这是我写的 for 循环:
newlist = []
ID = []
for line in f:
if len(line.strip())>0:
l=line.strip().split("\t")
for i in l[1]:
newlist+=[i]
for i in l[0]:
ID+=[i]
print(newlist)
print(ID)
问题是它将多位数字中的每个数字(例如变量 "ID" 中的 10 及以上)作为单独的元素输出。
例如:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '1', '0', '1', '1', '1', '2', '1', '3', '1', '4', '1', '5', '1', '6', '1', '7', '1', '8', '1', '9', '2', '0', '2', '1', '2', '2', '2', '3', '2', '4']
而不是这个:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24']
我查看了元组的解压缩函数,但这是不同的,因为数据不是元组。相反,问题是让 python 将每个两位数字作为一个可迭代的读取,而不是将每个数字作为一个可迭代的读取。
您不需要那些内部 for
循环。直接添加l
项即可。另外,使用 append
而不是 +=
.
newlist = []
ID = []
for line in f:
if len(line.strip())>0:
l=line.strip().split("\t")
newList.append(l[1])
ID.append(l[0])