在Python中如何用tab而不是元素来分隔iterables

在Python中如何用tab而不是元素来分隔iterables,python,iteration,Python,Iteration,我正在尝试构建一个非常简单的程序来转换如下所示的数据: 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:

我正在尝试构建一个非常简单的程序来转换如下所示的数据:

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及以上)作为单独的元素输出

e、 g:

与此相反:

['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将每个两位数作为一个iterable来读取,而不是将每个位数作为iterable来读取。

对于循环,您不需要这些内部
。只需直接添加
l
项即可。另外,请使用
附加
而不是
+=

newlist = []
ID = []

for line in f:
    if len(line.strip())>0:
        l=line.strip().split("\t")
        newList.append(l[1])
        ID.append(l[0])

对于
循环,您不需要这些内部
。只需直接添加
l
项即可。另外,请使用
附加
而不是
+=

newlist = []
ID = []

for line in f:
    if len(line.strip())>0:
        l=line.strip().split("\t")
        newList.append(l[1])
        ID.append(l[0])

对于
循环,您不需要这些内部
。只需直接添加
l
项即可。另外,请使用
附加
而不是
+=

newlist = []
ID = []

for line in f:
    if len(line.strip())>0:
        l=line.strip().split("\t")
        newList.append(l[1])
        ID.append(l[0])

对于
循环,您不需要这些内部
。只需直接添加
l
项即可。另外,请使用
附加
而不是
+=

newlist = []
ID = []

for line in f:
    if len(line.strip())>0:
        l=line.strip().split("\t")
        newList.append(l[1])
        ID.append(l[0])


你想要什么样的精确输出?你想要什么样的精确输出可能重复?你想要什么样的精确输出可能重复?你想要什么样的精确输出可能重复?谢谢。为什么要附加而不是+=?每次执行
some\u list+=[item]
,它都会创建一个全新的
some\u list
,将项目添加到其中,并用该值更新变量。此操作以O(n)时间运行-列表越长,所需时间越长<代码>追加
不会创建列表的新副本。这需要O(1)个时间——不管列表有多长,都需要相同的时间。这是有道理的。但是,如果我要使用内部for循环(例如使用计数器),是否有简单的语法更改使其计算每个数据点而不是每个数字?@Kevin:uhm,
+=
增强赋值不会创建
某些列表的新副本。向语言中添加增广赋值的全部目的是允许对可变项进行就地编辑。@Kevin:
newList+=[l[i]]
完全等同于
newList.append(l[i])
。谢谢。为什么要附加而不是+=?每次执行
some\u list+=[item]
,它都会创建一个全新的
some\u list
,将项目添加到其中,并用该值更新变量。此操作以O(n)时间运行-列表越长,所需时间越长<代码>追加
不会创建列表的新副本。这需要O(1)个时间——不管列表有多长,都需要相同的时间。这是有道理的。但是,如果我要使用内部for循环(例如使用计数器),是否有简单的语法更改使其计算每个数据点而不是每个数字?@Kevin:uhm,
+=
增强赋值不会创建
某些列表的新副本。向语言中添加增广赋值的全部目的是允许对可变项进行就地编辑。@Kevin:
newList+=[l[i]]
完全等同于
newList.append(l[i])
。谢谢。为什么要附加而不是+=?每次执行
some\u list+=[item]
,它都会创建一个全新的
some\u list
,将项目添加到其中,并用该值更新变量。此操作以O(n)时间运行-列表越长,所需时间越长<代码>追加
不会创建列表的新副本。这需要O(1)个时间——不管列表有多长,都需要相同的时间。这是有道理的。但是,如果我要使用内部for循环(例如使用计数器),是否有简单的语法更改使其计算每个数据点而不是每个数字?@Kevin:uhm,
+=
增强赋值不会创建
某些列表的新副本。向语言中添加增广赋值的全部目的是允许对可变项进行就地编辑。@Kevin:
newList+=[l[i]]
完全等同于
newList.append(l[i])
。谢谢。为什么要附加而不是+=?每次执行
some\u list+=[item]
,它都会创建一个全新的
some\u list
,将项目添加到其中,并用该值更新变量。此操作以O(n)时间运行-列表越长,所需时间越长<代码>追加
不会创建列表的新副本。这需要O(1)个时间——不管列表有多长,都需要相同的时间。这是有道理的。但是,如果我要使用内部for循环(例如使用计数器),是否有简单的语法更改使其计算每个数据点而不是每个数字?@Kevin:uhm,
+=
增强赋值不会创建
某些列表的新副本。向语言添加增广赋值的全部目的是允许对可变项进行就地编辑。@Kevin:
newList+=[l[i]]
完全等同于
newList.append(l[i])