在Python中,列表本身的索引号可以用作整数吗?

在Python中,列表本身的索引号可以用作整数吗?,python,string,list,dictionary,Python,String,List,Dictionary,我正在做这个代码战争卡塔 您必须返回字符串中得分最高的单词。字母是根据字母表中的位置来评分的 a =1, z= 26 我已经创建了一个列表: alphabet = ['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'] 我想遍历单词,它将在作为参数传递的字符串x中,如果要检查的字母在字母

我正在做这个代码战争卡塔

您必须返回字符串中得分最高的单词。字母是根据字母表中的位置来评分的

a =1, z= 26 
我已经创建了一个列表:

alphabet = ['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']
我想遍历单词,它将在作为参数传递的字符串x中,如果要检查的字母在字母表列表中,它当然会在字母表列表中,然后到一个sperate变量:score,根据字母表列表中当前要检查的字母的索引编号递增score

可以这样使用列表索引吗

这是我的代码soo-far:

def high(x):
    alphabet = []
    scores = [] # ignore
    score = 0 
    for letter in range(97,123):
        alphabet.append(chr(letter))
    word_list = x.split()
    for word in word_list: 
        for letter in word: 
            if letter in alphabet:
                score += # find way to use alphabet list index number as integer here
          
        

谢谢。

索引您还需要+1来说明索引[0]

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels
index = vowels.index('e')
print('The index of e:', index)

索引您还需要+1来说明索引[0]

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels
index = vowels.index('e')
print('The index of e:', index)

对。alphabet.indexletter+1将为您提供所需信息。

是。alphabet.indexletter+1将为您提供所需信息。

@AlanJP,是否尝试此程序:

简单单词评分程序 导入字符串 characters=string.ascii_小写 排名={c:i代表枚举字符中的i,c,1} 版画排名 单词列表='阿巴很棒'。拆分 对于word\u列表中的word: 分数=0重置每个输入单词的分数 对于word中的字符: 分数+=排名[字符] 印刷字、乐谱 输出:

abba 6
is 28
great 51
>>> 

@AlanJP,你想试试这个程序吗:

简单单词评分程序 导入字符串 characters=string.ascii_小写 排名={c:i代表枚举字符中的i,c,1} 版画排名 单词列表='阿巴很棒'。拆分 对于word\u列表中的word: 分数=0重置每个输入单词的分数 对于word中的字符: 分数+=排名[字符] 印刷字、乐谱 输出:

abba 6
is 28
great 51
>>> 
使用和字典分数来跟踪每个字母及其分数。注意,输入字符串是小写的——我假设大写字母和小写字母的得分相同

alphabet = 'abcdefghijklmnopqrstuvwxyz'
score = dict(zip(list(alphabet), [i + 1 for i in range(len(alphabet))]))

x = 'aB, c'
score = sum([score[c] for c in list(x.lower()) if c in score])
print(score)
# 6
使用和字典分数来跟踪每个字母及其分数。注意,输入字符串是小写的——我假设大写字母和小写字母的得分相同

alphabet = 'abcdefghijklmnopqrstuvwxyz'
score = dict(zip(list(alphabet), [i + 1 for i in range(len(alphabet))]))

x = 'aB, c'
score = sum([score[c] for c in list(x.lower()) if c in score])
print(score)
# 6

从我看来,根本不需要字母列表:

import string

def high(x):
    score = 0
    for word in x.split():
         for letter in word: 
             if letter in string.ascii_lowercase:
                score += ord(letter)-96
    return score
或者更简单:

import string

def high(x):
    # Sum expression on multiple lines for clarity
    return sum( ord(letter)-96 
                  for word in x.split() 
                      for letter in word
                          if letter in string.ascii_lowercase)

从我看来,根本不需要字母列表:

import string

def high(x):
    score = 0
    for word in x.split():
         for letter in word: 
             if letter in string.ascii_lowercase:
                score += ord(letter)-96
    return score
或者更简单:

import string

def high(x):
    # Sum expression on multiple lines for clarity
    return sum( ord(letter)-96 
                  for word in x.split() 
                      for letter in word
                          if letter in string.ascii_lowercase)

对于网站问题,请包括问题的原始链接。查看列表是否确实需要存在于al-使用ordletter-96有什么问题,它将分别为a到z提供1到26之间的值。要测试该字母是否为字母,请使用字母。islapha@AlanJP-请查看我的帖子。还没有看到链接。嗯-您需要修改一点以满足最大分数单词需求。应该没问题。@DanielHao我更新了我的问题以包含网站问题的链接,请包含该问题的原始链接。请看一下列表是否确实需要存在于al-使用ordletter-96有什么问题,它将分别为a到z提供1到26之间的值。要测试该字母是否为字母,请使用字母。islapha@AlanJP-请查看我的帖子。还没有看到链接。嗯-您需要修改一点以满足最大分数单词需求。这应该没问题。@DanielHao我更新了我的问题,将链接包括在内,如果没有这样的项目,则会引发一个ValueError。假设包括:“如果要检查的字母在字母表列表中,它当然会是”string.ascii_小写是对手工硬编码英文字母表的改进。例如,string.ascii_lowercase.indexletter+1。如果没有此类项,则会引发ValueError。假设包括:“如果要检查的字母在字母表列表中,它当然会是”string.ascii_lowercase是对手动硬编码英文字母表的改进。即string.ascii_lowercase.indexletter+1。