繁体   English   中英

如何摆脱额外的括号、引号或逗号 Python

[英]How to get rid of extra parentheses, quotes or commas Python

我正在制作一个不和谐的机器人,并且在获取没有额外括号、引号或逗号的列表值时遇到了问题。

这是代码:

#gets slots for page
    def listindexcheck(slot):
        if totalitemcount > slot + (page * 9):
            return slot + (page * 9)
        else:
            return 0

    if argument == 'show':
#message set up
        embed = discord.Embed(
            title='title',
            description='Here is your inventory',
            colour=discord.Colour.red())
        for i in range(9):
            embed.add_field(name=f"Slot ({listindexcheck(i+1)})", value=f'Dur: {str(item_dur[listindexcheck(i+1)])}\n'
                                                                        f'Mod: {str(item_mod[listindexcheck(i+1)])}\n'
                                                                        f'E.lvl: {str(item_level[listindexcheck(i+1)])}\n'
                                                                        f'*id:{str(item_ids[listindexcheck(i+1)])}*\n')
        embed.set_footer(text='page: ' + str(page+1))
        msg = await ctx.send(embed=embed)
        print (type(str(item_ids[listindexcheck(i+1)])))

这是输出

将其转换为字符串之前的数据类型是列表

我试图将值转换为字符串类型以至少去掉引号,但这不起作用

我的问题是有没有办法只获取值而不做任何额外的事情?

谢谢

将其转换为字符串后,您可以使用 replace() 方法删除您不想要的任何额外部分。 您可以用''替换您不想要的任何内容,以简单地将其从字符串中删除。

以下是有关 replace() 方法的一些信息: https : //www.w3schools.com/python/ref_string_replace.asp

您可以使用string.replace ,如果您为此创建一个函数会更好:

def delete_brackets(text: str):
    return text.replace(')', '').replace(')', '').replace(',', '')
embed.add_field(name=f"Slot ({listindexcheck(i+1)})", value=f'Dur: {delete_brackets(str(item_dur[listindexcheck(i+1)]))}\n'
                                                                        f'Mod: {delete_brackets(str(item_mod[listindexcheck(i+1)]))}\n'
                                                                        f'E.lvl: {delete_brackets(str(item_level[listindexcheck(i+1)]))}\n'
                                                                        f'*id:{delete_brackets(str(item_ids[listindexcheck(i+1)]))}*\n')

所以这对你有用。

从它的外观来看, item_dur[listindexcheck(i+1) , item_mod[listindexcheck(i+1) item_level[listindexcheck(i+1) item_ids[listindexcheck(i+1)似乎是里面只有一个项目的元组。 为什么括号里面有一个逗号? 这是因为逗号构成了元组而不是括号

因此,为了在打印时不得到括号和逗号,您可以像这样item_dur[listindexcheck(i+1)][0]元组的第一项item_dur[listindexcheck(i+1)][0]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM