我需要根据Python中的每个索引确定字符串列表中最常见的字符。
例子list1 = ['one', 'two', 'twin', 'who']
在索引0处所有字符串之间出现频率最高的字符是't'索引1处所有字符串之间出现频率最高的字符是'w'索引2处所有字符串之间最常见的字符是' 0 '索引3处所有字符串之间最常见的字符是'n'(因为索引3处只有一个字符
)我想从中创建一个最终字符串'twon'它显示每个索引
中所有字符串中出现频率最高的字符如何在不导入任何库的情况下在python上执行此操作?由于
from itertools import zip_longest
list1 = ['one', 'two', 'twin', 'who']
chars = {}
for i, item in enumerate(zip_longest(*list1)):
set1 = set(item)
if None in set1:
set1.remove(None)
chars[i] = max(set1, key=item.count)
不导入任何库:
list1 = ['one', 'two', 'twin', 'who']
width = len(max(list1, key=len))
chars = {}
for i, item in enumerate(zip(*[s.ljust(width) for s in list1])):
set1 = set(item)
if ' ' in set1:
set1.remove(' ')
chars[i] = max(set1, key=item.count)
输出:
chars
{
0: 't',
1: 'w',
2: 'o',
3: 'n'
}
"".join(chars.values())
'twon'
from collections import Counter
list1 = ['one', 'two', 'twin', 'who']
idx =0 #t
print(Counter(list(zip(*[i for i in list1 if len(i)>3]))[idx]).most_common()[0][0])
不导入任何库
list1 = ['one', 'two', 'twin', 'who']
idx =0 #t
l = list(list(zip(*[i for i in list1 if len(i)>3]))[idx])
print(max(set(l), key = l.count))