[英]How to turn tuple into string in python [duplicate]
如果
original = 'MK320MK180FM340SH230LL2HHH22TGF22',
然后我剥离了一个字符串列表,看起来像这样(字符串->元组):
list = {('MK320',), ('MK180',), ('FM340',), ('SH230',), ('LL2',), ('HHH22',), ('TGF22',)}
我想摆脱括号内的逗号。 也就是说,我想使这些元组重新成为字符串。 我所做的是:
for i in range(len(list)):
''.join(list[i])
但这并没有变得更好。 然后,我想将此传递给另一个命令,即Counter。 但是,实际上包括了Counter {(blabla)},我并不是很喜欢。 我希望得到一个字典结果,如下所示:
{('MK320': 1, 'MK180': 1, 'FM340': 1, 'SH230': 1, 'LL2': 1, 'HHH22' : 1, 'TGF22': 1}
最终计算每个产品名称的频率。
我不知道你是如何的字符串转换为在set
的tuple
你有。 而且,为什么在不需要它时甚至还要创建它?
您可以使用re
模块通过re.findall(pattern, string)
获得所需的列表:
>>> import re
>>> my_str = 'MK320MK180FM340SH230LL2HHH22TGF22'
>>> re.findall('[A-Za-z]+\d+', my_str)
['MK320', 'MK180', 'FM340', 'SH230', 'LL2', 'HHH22', 'TGF22']
然后,您可以使用collection.Counter
获取计数。 例如:
>>> from collections import Counter
>>> word_list = re.findall('[A-Za-z]+\d+', my_str)
>>> Counter(word_list)
Counter({'MK180': 1, 'SH230': 1, 'LL2': 1, 'FM340': 1, 'MK320': 1, 'TGF22': 1, 'HHH22': 1})
尝试这个:
lst = [('MK320',), ('MK180',), ('FM340',), ('SH230',), ('LL2',), ('HHH22',), ('TGF22',)]
lst = [t[0] for t in lst]
您的original
变量后有一个逗号,使其成为一个元组。 如果希望它是一个字符串,请删除结尾的逗号。
original = 'MK320MK180FM340SH230LL2HHH22TGF22'
您尚未显示如何生成list
变量。 (旁注:不要为变量list
或str
命名,它会掩盖内置类型。)但是您可以将字符串拆分成单独的部分,如下所示:
import re
original = 'MK320MK180FM340SH230LL2HHH22TGF22'
split_list = re.findall(r'[A-Z]+\d+', original)
您的list
变量实际上是一个集合。 集合的语法为{item1, item2, item3}
而列表的语法为[item1, item2, item3]
。
如果要将这个集合中的每个元组变成其第一个元素:
new_list = [item[0] for item in list]
最后,如果要计算此列表中每个项目的实例,可以将其传递给collections.Counter
。
import re
import collections
original = 'MK320MK180FM340SH230LL2HHH22TGF22'
split_list = re.findall(r'[A-Z]+\d+', original)
count = collections.Counter(split_list)
list = {('MK320',), ('MK180',), ('FM340',), ('SH230',), ('LL2',), ('HHH22',), ('TGF22',)}
那是一个集合而不是一个列表。
请不要使用list
作为变量名,因为该名称已经有一个非常有用的内置函数。 我要假装您将其命名为list1
。
听起来您想从1元组中提升元素:
list2 = [elt for elt, in list1]
然后,您可以根据需要将其与', '.join(list2)
join ', '.join(list2)
。
您可能有错别字,或者所做的事情与所描述的有所不同。 您的list
实际上是一组元组。 如果这就是您要创建的内容,则不能使用for
循环中显示的索引。 给定您要显示的所需输出,也不太清楚要使用什么,因为花括号后的括号中的语法无效。
鉴于您想要的,@ Moses-koledoye的答案是正确的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.