如何在python中向集合中的每个项添加变量
我必须向给定集合中的每个元素添加字符串--foo,我一直在努力尝试,但无法做到。真的有可能吗? 以下是布景如何在python中向集合中的每个项添加变量,python,python-3.x,Python,Python 3.x,我必须向给定集合中的每个元素添加字符串--foo,我一直在努力尝试,但无法做到。真的有可能吗? 以下是布景 a = {"apple", "banana", "cherry", "6363738", "1"} 输出 a = {"apple--foo", "banana--foo", "cherry--foo", "6363738-foo", "1-foo"} 可以在集合中使用字符串连接 >>> {i+'--foo' for i in a} {'banana--foo', '6
a = {"apple", "banana", "cherry", "6363738", "1"}
输出
a = {"apple--foo", "banana--foo", "cherry--foo", "6363738-foo", "1-foo"}
可以在集合中使用字符串连接
>>> {i+'--foo' for i in a}
{'banana--foo', '6363738--foo', 'apple--foo', 'cherry--foo', '1--foo'}
有几种方法可以实现这一点,下面是一个简单的for循环:
for i in range(len(a)):
a[i] += "--foo"
你可以试试
a = {"apple", "banana", "cherry", "6363738", "1"}
{"{}--foo".format(i) for i in a}
或用于Python 3.6及更高版本
{f"{i}--foo" for i in a}
输出
{"apple--foo", "banana--foo", "cherry--foo", "6363738-foo", "1-foo"}
如需更改,请使用
lambda
:
>>> map(lambda x: x + '--foo', a)
输出:
>>> set(map(lambda x: x + '--foo', a)) # {'apple--foo', '6363738--foo', '1--foo', 'cherry--foo', 'banana--foo'}
这只是为每个现有元素添加了一个额外的set元素--foo“;它不会将
--foo
附加到集合的每个元素。(也不会是item+=“--foo”
,因为str
值是不可变的。)这是一个输入错误,但您是正确的。现在就修复了。对于Python3.6和更高版本来说,这是正确的,但对于较低版本,格式会更好。人们希望3.6之前的部署正在迅速减少。