Python初学者在这里。我有一个像这样的元组列表:
[(100,1),(50,2),(25,4),(20,5),(10,10)]
我想将其转换为
[0,2,4,5,1]
与不断替换每个字符相比,必须有一种更快的方法:
strfp1 = re.sub('\(','',str(factor_pairs)); strfp2 = re.sub('\)','',strfp1); strfp3 = re.sub('\[','',strfp2); strfp4 = re.sub(']','',strfp3); strfp5 = re.sub(',','',strfp4); strfp6 = re.sub(' ','',strfp5)
factor_numbers = [int(i) for i in set(strfp6)]
但是,我什至找不到找到一次替换多个不相邻字符的方法。我缺少明显的东西吗?
答案 0 :(得分:1)
如果您想使用替换方法,确实有一种简便的方法:
$sudo yum-config-manager --enable graphviz-rhel
在外部$yum-config-manager list all
中指定的任何字符都将被替换。
答案 1 :(得分:0)
如果顺序不一定重要,则可以使用一组:
from itertools import chain
lst = [(100, 1), (50, 2), (25, 4), (20, 5), (10, 10)]
flst = map(lambda x: str(x), chain.from_iterable(lst))
s = set()
for x in flst:
for i in x:
s.add(i)
print(s)
# {'2', '1', '0', '5', '4'}
如果订单很重要,请使用列表:
from itertools import chain
lst = [(100, 1), (50, 2), (25, 4), (20, 5), (10, 10)]
flst = map(lambda x: str(x), chain.from_iterable(lst))
s = []
for x in flst:
for i in x:
if i not in s:
s.append(i)
print(s)
# ['1', '0', '5', '2', '4']