如何在 python 中合并随机数量的列表
How do combine a random amount of lists in python
我正在开发一个程序,该程序通过 FASTQ 文件读取并给出该文件中每个序列的 N 数量。我设法得到每行 N 的数量,并将它们放在一个列表中。
问题是我需要一个列表中的所有数字来计算文件中 N 的总数,但它们会打印在自己的列表中。
C:\Users\Zokids\Desktop>N_counting.py test.fastq
[4]
4
[3]
3
[5]
5
这是我的输出,列表中的列表和总金额。我已经看到了手动组合列表的方法,但是一个可以有数百个序列,所以这是不行的。
def Count_N(line):
'''
This function takes a line and counts the anmount of N´s in the line
'''
List = []
Count = line.count("N") # Count the amount of N´s that are in the line returned by import_fastq_file
List.append(int(Count))
Total = sum(List)
print(List)
print(Total)
这是我的代码,另一个函数选择行。
我希望有人能帮我解决这个问题。
提前谢谢你。
从您的代码看来,您每次调用 count_N() 时都会发送一行。您声明的列表是一个本地列表,每次调用该函数时都会重新初始化。您可以使用以下方式声明全局列表:
global List =[]
我认为您还需要在函数外部声明列表以便全局访问它。
另外如果在函数外对列表求和就更好了。现在你正在总结函数内的列表。为此,您需要将缩进与函数声明相匹配。
您在函数中定义的 List
永远不会获得超过一项,因此它不是很有用。相反,您可能应该 return
来自函数的计数,并让调用代码(在某种循环中大概是 运行 ) append
将值添加到它自己的列表中。当然,由于功能不多,你也可以把它的内容移到循环中!
例如:
list_of_counts = []
for line in my_file:
count = line.count("N")
list_of_counts.append(count)
total = sum(list_of_counts)
我正在开发一个程序,该程序通过 FASTQ 文件读取并给出该文件中每个序列的 N 数量。我设法得到每行 N 的数量,并将它们放在一个列表中。 问题是我需要一个列表中的所有数字来计算文件中 N 的总数,但它们会打印在自己的列表中。
C:\Users\Zokids\Desktop>N_counting.py test.fastq
[4]
4
[3]
3
[5]
5
这是我的输出,列表中的列表和总金额。我已经看到了手动组合列表的方法,但是一个可以有数百个序列,所以这是不行的。
def Count_N(line):
'''
This function takes a line and counts the anmount of N´s in the line
'''
List = []
Count = line.count("N") # Count the amount of N´s that are in the line returned by import_fastq_file
List.append(int(Count))
Total = sum(List)
print(List)
print(Total)
这是我的代码,另一个函数选择行。
我希望有人能帮我解决这个问题。 提前谢谢你。
从您的代码看来,您每次调用 count_N() 时都会发送一行。您声明的列表是一个本地列表,每次调用该函数时都会重新初始化。您可以使用以下方式声明全局列表:
global List =[]
我认为您还需要在函数外部声明列表以便全局访问它。
另外如果在函数外对列表求和就更好了。现在你正在总结函数内的列表。为此,您需要将缩进与函数声明相匹配。
您在函数中定义的 List
永远不会获得超过一项,因此它不是很有用。相反,您可能应该 return
来自函数的计数,并让调用代码(在某种循环中大概是 运行 ) append
将值添加到它自己的列表中。当然,由于功能不多,你也可以把它的内容移到循环中!
例如:
list_of_counts = []
for line in my_file:
count = line.count("N")
list_of_counts.append(count)
total = sum(list_of_counts)