将元组列表转换为该列表中使用的所有整数的列表

时间:2019-03-07 03:04:07

标签: python regex string list tuples

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

但是,我什至找不到找到一次替换多个不相邻字符的方法。我缺少明显的东西吗?

2 个答案:

答案 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']