如何分别计算每个字符串的列表中的特定字符

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

【讨论】:

谢谢好心人,现在我正要数一数我能做到的。谢谢!

以上是关于如何分别计算每个字符串的列表中的特定字符的主要内容,如果未能解决你的问题,请参考以下文章

计算有多少列表条目具有以特定char结尾的字符串属性

如何在 SQL 中计算逗号分隔列表中的字符串项

如何改进评估列表以确定它是不是包含特定连续项目的方法?

将文件中的字符读入列表

以随机顺序搜索包含特定字母的列表中的字符串

如何从 pyspark 数据框列中的列表中删除特定字符串