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])