[英]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.