在Python中将字母与列表中相应的数字匹配

2024-10-01 00:22:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究制作一个程序,当用户输入一个名称作为参数时,它会将每个字母与存储在列表中的相应数字相匹配

例如:

def nameNumbers(name):
    alphabetList = ['Aa', 8.17, 'Bb', 1.49, 'Cc', 2.78, 'Dd', 4.25, 
  'Ee', 12.70, 'Ff', 2.23, 'Gg', 2.02, 'Hh', 6.09, 'Ii', 6.97, 
  'Jj', 0.15, 'Kk', 0.77, 'Ll', 4.03, 'Mm', 2.41, 'Nn', 6.75, 
  'Oo', 7.51, 'Pp', 1.93, 'Qq', 0.10, 'Rr', 5.99, 'Ss', 6.33, 
  'Tt', 9.06, 'Uu', 2.76, 'Vv', 0.98, 'Ww', 2.36, 'Xx', 0.15, 
  'Yy', 1.97, 'Zz', 0.07]

因此,如果我要通过“亚当”,它会返回:

8.17
4.25
8.17
2.41

谢谢


Tags: 用户name程序名称列表参数def字母
2条回答

使用以字母字符为键、值为整数的字典

def nameNumbers(name):
    alphabetList = ['Aa', 8.17, 'Bb', 1.49, 'Cc', 2.78, 'Dd', 4.25, 
  'Ee', 12.70, 'Ff', 2.23, 'Gg', 2.02, 'Hh', 6.09, 'Ii', 6.97, 
  'Jj', 0.15, 'Kk', 0.77, 'Ll', 4.03, 'Mm', 2.41, 'Nn', 6.75, 
  'Oo', 7.51, 'Pp', 1.93, 'Qq', 0.10, 'Rr', 5.99, 'Ss', 6.33, 
  'Tt', 9.06, 'Uu', 2.76, 'Vv', 0.98, 'Ww', 2.36, 'Xx', 0.15, 
  'Yy', 1.97, 'Zz', 0.07]
    dic = { alphabetList[i][1]: alphabetList[i+1] for i in range(0,len(alphabetList),2)}

    for i in name:
        print(dic[i.lower()])

nameNumbers('adam')

或者您需要找到每个字符的索引,在列表中,每个字符都是大写字母+小写字母,即AaBb,然后使用list.index查找索引位置并访问列表中该索引的下一个元素

def nameNumbers(name):
    alphabetList = ['Aa', 8.17, 'Bb', 1.49, 'Cc', 2.78, 'Dd', 4.25, 
      'Ee', 12.70, 'Ff', 2.23, 'Gg', 2.02, 'Hh', 6.09, 'Ii', 6.97, 
      'Jj', 0.15, 'Kk', 0.77, 'Ll', 4.03, 'Mm', 2.41, 'Nn', 6.75, 
      'Oo', 7.51, 'Pp', 1.93, 'Qq', 0.10, 'Rr', 5.99, 'Ss', 6.33, 
      'Tt', 9.06, 'Uu', 2.76, 'Vv', 0.98, 'Ww', 2.36, 'Xx', 0.15, 
      'Yy', 1.97, 'Zz', 0.07]

    for alphabet in name:
        to_find = "{}{}".format(alphabet.upper(), alphabet.lower())
        print(alphabetList[alphabetList.index(to_find)+1])

nameNumbers('adam')

你可能会这样做:

def nameNumbers(name):
    alphabetList = ['a', 8.17, 'b', 1.49, 'c', 2.78, 'd', 4.25, 'e', 12.70, 'f', 2.23, 
    'g', 2.02, 'h', 6.09, 'i', 6.97, 'j', 0.15, 'k', 0.77, 'l', 4.03, 'm', 2.41, 'n', 
    6.75, 'o', 7.51, 'p', 1.93, 'q', 0.10, 'r', 5.99, 's', 6.33, 't', 9.06, 'u', 2.76, 
    'v', 0.98, 'w', 2.36, 'x', 0.15, 'y', 1.97, 'z', 0.07]
    for letter in name.lower():
        print(alphabetList[alphabetList.index(letter)+1])

nameNumbers('Adam')

如果使用“.lower()”,则不需要每个字母的大写字母

相关问题 更多 >