如何在不使用任何导入的情况下将列表中的每个项目加倍?
一些例子:
>>> multiply_items(['a', 'b'])
['a', 'a', 'b', b']
>>> multiply_items(['b', 'a'])
['b', 'b', 'a', a']
>>> multiply_items(['a', 'b', 'c'])
['a', 'a', 'b', b', 'c', c']
>>> multiply_items(['3', '4'])
['3', '3', '4', 4']
>>> multiply_items(['hi', 'bye'])
['hi', 'hi', 'bye', bye']
这是我想出来的,但它将元素组合在一起而不是单独的字符串.
def multiply_items(sample_list):
'''(list) -> list
Given a list, returns the a new list where each element in the list is
doubled.
>>> multiply_items(['a', 'b'])
['a', 'a', 'b', b']
>>> multiply_items(['a', 'b', 'c'])
['a', 'a', 'b', b', 'c', c']
>>> multiply_items(['3', '4'])
['3', '3', '4', 4']
'''
new_list = []
for item in sample_list:
new_list.append(item * 2)
return new_list
我得到的输出:
>>> multiply_items(['3', '4'])
['33', '44']
>>> multiply_items(['hi', 'bye'])
['hihi', 'byebye']
谢谢你的帮助:)
最佳答案 如此接近…天真的方法:
for item in sample_list:
for i in range(2):
new_list.append(item)
你的问题是由字符串也是列表这一事实引起的,因此’a’* 2不是[‘a’,’a’]而是aa.现在,知道问题,您仍然可以通过在单例列表中移动项目来在单个循环中解决它:更好的方法:
for item in sample_list:
new_list.extend([item] * 2)