如何分别计算每个字符串的列表中的特定字符
Posted
技术标签:
【中文标题】如何分别计算每个字符串的列表中的特定字符【英文标题】:How to count specific characters in a list for each string separately 【发布时间】:2022-01-13 11:19:28 【问题描述】:正如我的标题所说。我认为代码会描述我想要做什么。
输入:
words = ['oko', 'grzybobranie', 'żółw', 'jaźń', 'zażółcone krzewy', 'hipodrom', 'szczęki', 'kurs poprawkowy']
预期输出:
sum of polish signs in words - [0, 0, 3, 2, 3, 0, 1, 0]
我的作品:
words = ['oko', 'grzybobranie', 'żółw', 'jaźń', 'zażółcone krzewy', 'hipodrom', 'szczęki', 'kurs poprawkowy']
sumOfChars = [len(i) for i in words]
polish = 'ą ć ę ł ń ó ś ź ż'.split()
lista = []
for i in words:
for x in i:
if x in polish:
lista.append(x)
print(sumOfChars)
print(lista)
我的输出:
[3, 12, 4, 4, 16, 8, 7, 15]
# ^ sum of chars in every string
['ż', 'ó', 'ł', 'ź', 'ń', 'ż', 'ó', 'ł', 'ę']
# ^ special signs in my strings
【问题讨论】:
【参考方案1】:你可以做一个简单的列表理解:
words = ['oko', 'grzybobranie', 'żółw', 'jaźń', 'zażółcone krzewy', 'hipodrom', 'szczęki', 'kurs poprawkowy']
polish = 'ąćęłńóśźż'
output = [sum(j in polish for j in i) for i in words]
输出:
[0, 0, 3, 2, 3, 0, 1, 0]
【讨论】:
嗯,我总是对单线男人感到震惊,哈哈。谢谢!【参考方案2】:您可以为每个单词创建一个列表并计算每个子列表的长度。我已经相应地更新了您的代码:
words = ['oko', 'grzybobranie', 'żółw', 'jaźń', 'zażółcone krzewy', 'hipodrom', 'szczęki', 'kurs poprawkowy']
sumOfChars = [len(i) for i in words]
polish = 'ą ć ę ł ń ó ś ź ż'.split()
lista = []
for i in words:
tmp = []
for x in i:
if x in polish:
tmp.append(x)
lista.append(tmp)
print(sumOfChars)
print(lista)
print([len(l) for l in lista])
【讨论】:
谢谢好心人,现在我正要数一数我能做到的。谢谢!以上是关于如何分别计算每个字符串的列表中的特定字符的主要内容,如果未能解决你的问题,请参考以下文章