Python 我如何加上“;及;在最后的整数之间

Python 我如何加上“;及;在最后的整数之间,python,string,Python,String,我有以下代码: def guess_index(guess, word): word2 = list(word) num = word.count(guess)+1 count = 0 x = [] for i in range(0,num): try: count += 1 y = word2.index(guess) x.append(y+count)

我有以下代码:

def guess_index(guess, word):   
    word2 = list(word)
    num = word.count(guess)+1
    count = 0
    x = []
    for i in range(0,num):
        try:
            count += 1
            y = word2.index(guess)
            x.append(y+count)
            del(word2[y])
        except ValueError:
            break
    z = ",".join(str(i)for i in x)

return "The character you guessed is number %s in the word you have to guess" % (z)
我希望z字符串中的最后一个整数中有一个and,因此它会打印成这样,
您猜到的字符是您必须猜到的单词中的数字1、2、3和7。
任何指向正确方向的指针都会非常有用。

谢谢。

您可以切片
x
以省去最后一个,然后手动添加它。确保检查列表是否为空或仅包含一个元素,因为切片如何与负索引一起工作:

z = (','.join(str(i) for i in x[:-1]) + " and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
例如:

>>> x = [1, 2, 3, 7]
>>> z = (','.join(str(i) for i in x[:-1]) + " and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
>>> z
'1,2,3 and 7'
尽管我强烈建议添加一个牛津逗号并使用一些空格,但为了美观起见:

z = (', '.join(str(i) for i in x[:-1]) + ", and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
这可以写成:

if len(x) > 1:
    z = ', '.join(str(i) for i in x[:-1]) + ", and " + str(x[-1])
elif len(x) == 1:
    z = str(x[0])
else:
    z = ''

您可以切片
x
以省去最后一个,然后手动添加它。确保检查列表是否为空或仅包含一个元素,因为切片如何与负索引一起工作:

z = (','.join(str(i) for i in x[:-1]) + " and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
例如:

>>> x = [1, 2, 3, 7]
>>> z = (','.join(str(i) for i in x[:-1]) + " and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
>>> z
'1,2,3 and 7'
尽管我强烈建议添加一个牛津逗号并使用一些空格,但为了美观起见:

z = (', '.join(str(i) for i in x[:-1]) + ", and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
这可以写成:

if len(x) > 1:
    z = ', '.join(str(i) for i in x[:-1]) + ", and " + str(x[-1])
elif len(x) == 1:
    z = str(x[0])
else:
    z = ''

您可以切片
x
以省去最后一个,然后手动添加它。确保检查列表是否为空或仅包含一个元素,因为切片如何与负索引一起工作:

z = (','.join(str(i) for i in x[:-1]) + " and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
例如:

>>> x = [1, 2, 3, 7]
>>> z = (','.join(str(i) for i in x[:-1]) + " and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
>>> z
'1,2,3 and 7'
尽管我强烈建议添加一个牛津逗号并使用一些空格,但为了美观起见:

z = (', '.join(str(i) for i in x[:-1]) + ", and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
这可以写成:

if len(x) > 1:
    z = ', '.join(str(i) for i in x[:-1]) + ", and " + str(x[-1])
elif len(x) == 1:
    z = str(x[0])
else:
    z = ''

您可以切片
x
以省去最后一个,然后手动添加它。确保检查列表是否为空或仅包含一个元素,因为切片如何与负索引一起工作:

z = (','.join(str(i) for i in x[:-1]) + " and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
例如:

>>> x = [1, 2, 3, 7]
>>> z = (','.join(str(i) for i in x[:-1]) + " and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
>>> z
'1,2,3 and 7'
尽管我强烈建议添加一个牛津逗号并使用一些空格,但为了美观起见:

z = (', '.join(str(i) for i in x[:-1]) + ", and " + str(x[-1])) if len(x) > 1 else '' if len(x) == 0 else str(x[0])
这可以写成:

if len(x) > 1:
    z = ', '.join(str(i) for i in x[:-1]) + ", and " + str(x[-1])
elif len(x) == 1:
    z = str(x[0])
else:
    z = ''

谢谢你,这么简单:)这可能是一个很好的功能,而不是一个大的讨厌的就地替代适合
def format_ints(ints):返回_值=','。如果len(ints)>1,则在ints[:-1])中连接(str(int_)表示int_),如果len(ints)>1,则连接“+str(ints[-1]);return\u value
然后你可以直接调用
format\u int(numbers)
就可以了。我不同意你把它分解成一个新函数的观点,但是索引上的好东西得到了。谢谢,这么简单的东西:)这可能很适合函数,而不是一个大的讨厌的就地替换
def format_ints(ints):返回_值=','。如果len(ints)>1,则在ints[:-1])中连接(str(int_)表示int_),如果len(ints)>1,则连接“+str(ints[-1]);return\u value
然后你可以直接调用
format\u int(numbers)
就可以了。我不同意你把它分解成一个新函数的观点,但是索引上的好东西得到了。谢谢,这么简单的东西:)这可能很适合函数,而不是一个大的讨厌的就地替换
def format_ints(ints):返回_值=','。如果len(ints)>1,则在ints[:-1])中连接(str(int_)表示int_),如果len(ints)>1,则连接“+str(ints[-1]);return\u value
然后你可以直接调用
format\u int(numbers)
就可以了。我不同意你把它分解成一个新函数的观点,但是索引上的好东西得到了。谢谢,这么简单的东西:)这可能很适合函数,而不是一个大的讨厌的就地替换
def format_ints(ints):返回_值=','。如果len(ints)>1,则在ints[:-1])中连接(str(int_)表示int_),如果len(ints)>1,则连接“+str(ints[-1]);返回返回值
然后你就可以在线调用
格式化整数(数字)
了。我不同意你把它分解成一个新函数的观点,但是很好地抓住了索引。