代码从字典中删除重复字母

K-D*_*234 0 python

我的代码应该打印一个包含输入字母 ( s)的字典,并为每个字符分配一个特定长度( 的长度s)内的随机数。当它尝试添加一个已经在字符串中的字母时,它会跳过它,但它不应该这样做。

我的代码:

import random as r
def strhash(s):
  x = 0
  y = 0
  z = 0
  ind = {
    }
  ra = 0
  while z != len(s):
    ra = r.randint(0, len(s))
    x += 1
    y = x-1
    ind[s[y:x]] = ra
    z += 1
  return ind

print(strhash('hello'))

Run Code Online (Sandbox Code Playgroud)

Par*_*pta 5

这是因为字典键应该是唯一的。您可以使用其他数据类型,例如元组列表

from random import randint

def strhash(s):
  result = []
  l = len(s)
  for i in s:
    result.append((i, randint(0, l)))
  return result

print(strhash('hello'))
Run Code Online (Sandbox Code Playgroud)

输出:

[('h', 1), ('e', 5), ('l', 5), ('l', 5), ('o', 0)]
Run Code Online (Sandbox Code Playgroud)