我试图采取一个字符串,并将其附加到每个字符串包含在一个列表,然后有一个新的列表与完成的字符串。例子:
list1 = ['foo', 'fob', 'faz', 'funk']
string = 'bar'
*magic*
list2 = ['foobar', 'fobbar', 'fazbar', 'funkbar']
我尝试了for循环,并尝试了列表理解,但它是垃圾。一如既往,任何帮助,非常感谢。
我试图采取一个字符串,并将其附加到每个字符串包含在一个列表,然后有一个新的列表与完成的字符串。例子:
list1 = ['foo', 'fob', 'faz', 'funk']
string = 'bar'
*magic*
list2 = ['foobar', 'fobbar', 'fazbar', 'funkbar']
我尝试了for循环,并尝试了列表理解,但它是垃圾。一如既往,任何帮助,非常感谢。
当前回答
list2 = ['%sbar' % (x,) for x in list]
不要用list作为名字;它隐藏内置类型。
其他回答
结合地图和格式:
>>> list(map('{}bar'.format, ['foo', 'fob', 'faz', 'funk']))
['foobar', 'fobbar', 'fazbar', 'funkbar']
因此,没有循环变量。 它适用于Python 2和Python 3。(在Python 3中可以写[*map(…)],而在Python 2中只需写map(…)。
如果有人喜欢模表达式
>>> list(map('%sbar'.__mod__, ['foo', 'fob', 'faz', 'funk']))
['foobar', 'fobbar', 'fazbar', 'funkbar']
可以使用__add__方法进行前置
>>> list(map('bar'.__add__, ['foo', 'fob', 'faz', 'funk']))
['barfoo', 'barfob', 'barfaz', 'barfunk']
在我看来,地图是最适合做这项工作的工具。
my_list = ['foo', 'fob', 'faz', 'funk']
string = 'bar'
list2 = list(map(lambda orig_string: orig_string + string, my_list))
有关map的更多示例,请参阅函数式编程工具一节。
你可以在python中使用lambda inside map。写了一个灰色代码生成器。 https://github.com/rdm750/rdm750.github.io/blob/master/python/gray_code_generator.py #你的代码在这里 “‘ n-1位代码,每个单词前加0,后面加 反向排列的n-1位代码,每个单词前加1。 “‘
def graycode(n):
if n==1:
return ['0','1']
else:
nbit=map(lambda x:'0'+x,graycode(n-1))+map(lambda x:'1'+x,graycode(n-1)[::-1])
return nbit
for i in xrange(1,7):
print map(int,graycode(i))
my_list = ['foo', 'fob', 'faz', 'funk']
string = 'bar'
my_new_list = [x + string for x in my_list]
print my_new_list
这将打印:
['foobar', 'fobbar', 'fazbar', 'funkbar']
new_list = [word_in_list + end_string for word_in_list in old_list]
使用诸如“list”这样的名称作为变量名是不好的,因为它将覆盖/覆盖内置。