假设有一个链接列表,每个整数在123中有一个点,head是1,next是2,next是3,你如何将每个元素乘以一个数字,让我们说3,这样新的链接列表指向3,6,9?
答案 0 :(得分:1)
>>> list1 = [1, 2, 3]
>>> [x * 3 for x in list1]
[3, 6, 9]
>>>
答案 1 :(得分:0)
使用列表理解:
In [1]: lis=[1,2,3]
In [2]: [x*3 for x in lis]
Out[2]: [3, 6, 9]
In [3]: num=123
In [4]: [int(x)*4 for x in str(num)] #convert num to a string and iterate over it
Out[4]: [4, 8, 12]
In [5]: ''.join(str(int(x)*3) for x in str(num)) #to get something like 4812
Out[5]: '4812'
答案 2 :(得分:0)
算法很简单:
def multiply(L, x):
if L.is_empty():
return L
else:
return join(L.head * x, multiply(L.tail, x))
其中“L.head”是第一个元素,L.tail是剩余的列表,join是一个函数,它将第一个参数作为列表的第一个元素放在第二个参数中(所以join(1,[2, 3]) - > [1,2,3])。
Python没有简单的链接列表作为内置类型。 deque
模块中有一个collections
类型,它实现了一个双链表(并且可以像单链表一样使用)。
您可能正在实施自己的链表类(用于家庭作业)?
答案 3 :(得分:0)
假设您的列表是可迭代的:
>>> map(lambda x: x*3, [12, 1, 42])
[36, 3, 126]