在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])
。