如何去掉Python中多余的括号、引号或逗号



我正在制作一个discord bot,并且在获取不包含额外括号、引号或逗号的列表值时遇到了问题。

这是代码:

#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)])))

这是的输出

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

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

我的问题是,有没有一种方法可以在不做任何额外事情的情况下获得价值?

感谢

从外观上看,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]

将其转换为字符串后,可以使用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')

所以这对你有用。

最新更新