Python 从其他列表创建列表
Python create list from a other list
我想在 python def 函数中编辑列表并获得 return 新函数。在函数中,列表应该被排序并且一些列表项应该被替换。 return 应该是一个新列表!感谢提前帮助..
我有一个 list1 = [a, d, b]
,d
应该替换为 c
并且列表应该排序。新列表应该是 [a, b, c]
.
假设您的字母从第一个字母开始并且按字母顺序排列,这应该可行:
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
def Correct(l):
l.sort()
i = letters.index(l[0])
return letters[i:min(len(letters), i+len(l))]
尝试一下:
test = ['a', 'd', 'b']
Correct(test)
给出:
['a', 'b', 'c']
编辑:
一些用户指出这只是针对这个特定案例。所以,这个解决方案应该有效:
def Swap(l, c):
l.pop(1)
l.append(c)
return l
只需删除 'd',附加 'c' 并排序:
def edit_list(list1, old_letter, new_letter):
list1.remove(old_letter)
list1.append(new_letter)
sorted(list1)
return list1
输出:
>>>list1 = ['a', 'b', 'd']
>>>edit_list(list1, 'd', 'c')
['a', 'b', 'c']
在更通用的设置中,如果您有像
这样的重映射字典
m = {"d":"c",} # you can add as many mappings as you want
您可以通过以下方式实现您的结果:
new_list = sorted([m.get(k, k) for k in list1])
我想在 python def 函数中编辑列表并获得 return 新函数。在函数中,列表应该被排序并且一些列表项应该被替换。 return 应该是一个新列表!感谢提前帮助..
我有一个 list1 = [a, d, b]
,d
应该替换为 c
并且列表应该排序。新列表应该是 [a, b, c]
.
假设您的字母从第一个字母开始并且按字母顺序排列,这应该可行:
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
def Correct(l):
l.sort()
i = letters.index(l[0])
return letters[i:min(len(letters), i+len(l))]
尝试一下:
test = ['a', 'd', 'b']
Correct(test)
给出:
['a', 'b', 'c']
编辑:
一些用户指出这只是针对这个特定案例。所以,这个解决方案应该有效:
def Swap(l, c):
l.pop(1)
l.append(c)
return l
只需删除 'd',附加 'c' 并排序:
def edit_list(list1, old_letter, new_letter):
list1.remove(old_letter)
list1.append(new_letter)
sorted(list1)
return list1
输出:
>>>list1 = ['a', 'b', 'd']
>>>edit_list(list1, 'd', 'c')
['a', 'b', 'c']
在更通用的设置中,如果您有像
这样的重映射字典m = {"d":"c",} # you can add as many mappings as you want
您可以通过以下方式实现您的结果:
new_list = sorted([m.get(k, k) for k in list1])