Python 如何迭代字符串中字符的每个位置以获得字符串列表?

Python 如何迭代字符串中字符的每个位置以获得字符串列表?,python,Python,因此,我有一个字符串列表,所有长度相同,如下所示: list_strings=["a-a--","-ab-b","a---a","b-b-a","aab-a"] 我想做的是迭代列表中字符串的每个位置,以便计算字符在每个位置出现的次数。例如,在这种情况下,位置0有1-s,位置1有3-s,位置2有1-s,位置3有5-s。但我想对一个超过100000个字符串的文件执行此操作 到目前为止,我已经: for i in range(0,len(list_strings)): for j in ra

因此,我有一个字符串列表,所有长度相同,如下所示:

list_strings=["a-a--","-ab-b","a---a","b-b-a","aab-a"]
我想做的是迭代列表中字符串的每个位置,以便计算字符在每个位置出现的次数。例如,在这种情况下,位置0有1-s,位置1有3-s,位置2有1-s,位置3有5-s。但我想对一个超过100000个字符串的文件执行此操作

到目前为止,我已经:

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时,该变量将添加他自己,并且列表中有“-”的数字

counter =0
for i in range(0,len(list_strings)):
    for j in range(0,len(list_strings[i])):
        if list_strings[i][j]=="-":
           counter = counter +1
你很好。 只需添加counter=0变量,每当if子句为true时,该变量将添加他自己,并且列表中有“-”的数字

counter =0
for i in range(0,len(list_strings)):
    for j in range(0,len(list_strings[i])):
        if list_strings[i][j]=="-":
           counter = counter +1
印刷品:

[1, 3, 1, 5, 1]
如果某些字符串长度不同:

from itertools import zip_longest
out = [v.count('-') for v in zip_longest(*list_strings)]
印刷品:

[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')

我不会做太多解释,所以下面是开始的代码:

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')

我是布莱夫。需要N个字符是合理的,这就是你所拥有的。你有什么问题吗?你的解决方案有效吗?如果没有,它是如何不足的?你为什么不使用str.count。。我是布莱夫。需要N个字符是合理的,这就是你所拥有的。你有什么问题吗?你的解决方案有效吗?如果没有,它是如何不足的?你为什么不使用str.count。。感谢您向我展示了这两种方法,有没有办法同时检查下划线的计数?如中所示,每个职位都非常重要-或者?使用count,我只能传递一个参数。很抱歉,我知道这个问题没有包括在内,以防万一有个简单的问题answer@tadeufontes如果我理解正确,您可以对zip*列表字符串中的v执行=[v.count'-'+v.count'.''谢谢您向我展示这两种方法,有没有办法也检查下划线的计数?如中所示,每个职位都非常重要-或者?使用count,我只能传递一个参数。很抱歉,我知道这个问题没有包括在内,以防万一有个简单的问题answer@tadeufontes如果我没弄错的话,你可以在zip*列表字符串中为v做出=[v.count'-'+v.count'.]