相关疑难解决方法(0)

为列表中的每个唯一值分配一个数字

我有一个字符串列表.我想为每个字符串分配一个唯一的编号(确切的数字并不重要),并按顺序使用这些编号创建一个相同长度的列表.以下是我最好的尝试,但我不满意有两个原因:

  1. 它假设相同的值彼此相邻

  2. 我必须用a开始列表0,否则输出将是不正确的

我的代码:

names = ['ll', 'll', 'll', 'hl', 'hl', 'hl', 'LL', 'LL', 'LL', 'HL', 'HL', 'HL']
numbers = [0]
num = 0
for item in range(len(names)):
    if item == len(names) - 1:
      break
    elif names[item] == names[item+1]:
        numbers.append(num)
    else:
        num = num + 1
        numbers.append(num)
print(numbers)
Run Code Online (Sandbox Code Playgroud)

我想使代码更通用,因此它将使用未知列表.有任何想法吗?

python list

13
推荐指数
3
解决办法
1万
查看次数

标签 统计

list ×1

python ×1