所以我有一个长度相同的字符串列表,像这样:
list_strings=["a-a--","-ab-b","a---a","b-b-a","aab-a"]
我想做的事会在列表中字符串的每个位置上进行迭代,以便计算字符“-”出现在每个位置的次数。在这种情况下,例如,位置0具有1“-”,位置1具有3“-”,位置2具有1“-”,位置3具有5“-”。但我想对包含超过100,000个字符串的文件执行此操作
到目前为止,我有:
for i in range(0,len(list_strings)):
for j in range(0,len(list_strings[i])):
if list_strings[i][j]=="-":
#count how many "-"s appear in this position and maybe save it in a list?
预先感谢您的回答
你很好。只需添加counter=0
变量,该变量将在每次您的if
子句为true时添加自己,并且您的列表中将包含'-'
的数量。
list_strings=["a-a--","-ab-b","a---a","b-b-a","aab-a"]
# if every string in `list_strings` is same length:
out = [v.count('-') for v in zip(*list_strings)]
print(out)
打印:
[1, 3, 1, 5, 1]
如果某些字符串的长度不同:
from itertools import zip_longest
out = [v.count('-') for v in zip_longest(*list_strings)]
我不会做太多解释,所以这是开始的代码:
list_strings=["a-a--","-ab-b","a---a","b-b-a","aab-a"]
for string in list_strings:
occurrence = 0
check_letter = '-'
for letter in string:
if letter == check_letter:
occurrence += 1
print('string: ' + string)
print('occurrences: ' + occurrence)
print('\n')