Python 查找反向字符串在字符串列表中是否有匹配项
我正在学习Python,一个月后,我遇到了以下问题: 冰淇淋店有一系列口味: 口味=[ “香蕉”, “巧克力”, “柠檬”, “开心果”, “覆盆子”, “草莓”, “香草”, ] 他们想建立一个清单,列出2球口味冰淇淋的所有替代品。 味道不能重复: 也就是说,香蕉巧克力不能列入名单,因为香蕉巧克力已经在名单上。 我得把名单打印出来 这是我的密码:Python 查找反向字符串在字符串列表中是否有匹配项,python,string,list,reverse,Python,String,List,Reverse,我正在学习Python,一个月后,我遇到了以下问题: 冰淇淋店有一系列口味: 口味=[ “香蕉”, “巧克力”, “柠檬”, “开心果”, “覆盆子”, “草莓”, “香草”, ] 他们想建立一个清单,列出2球口味冰淇淋的所有替代品。 味道不能重复: 也就是说,香蕉巧克力不能列入名单,因为香蕉巧克力已经在名单上。 我得把名单打印出来 这是我的密码: result = [] sub_result = "" for ice in FLAVORS: for othe
result = []
sub_result = ""
for ice in FLAVORS:
for other_ice in FLAVORS:
if ice == other_ice:
continue
sub_result = ice + ", " + other_ice
if reversed(sub_result) in result:
continue
result.append(sub_result)
print ('\n'.join([item for item in result ])) '''
我无法让脚本绕过偏好的反向迭代。首先,
反向
反向一个iterable。它返回一个迭代器,而不是字符串!您不想反转字符串,因为这样会得到类似于'nomeL,etalocohC'
的东西
第二,利用事实,你已经知道哪些项目,你已经在相反的顺序
FLAVORS = [ "Banana", "Chocolate", "Lemon", "Pistachio", "Raspberry", "Strawberry", "Vanilla"]
result = []
for i, ice in enumerate(FLAVORS):
for other_ice in FLAVORS[i + 1:]:
result.append(f'{first_flavor} {second_flavor}')
print('\n'.join(result))
使用
sub_result=ice+”,“+other_ice
使sub_result
成为一个字符串。例如,对于香蕉
和巧克力
,您会得到“香蕉,巧克力”
。你需要(“香蕉”、“巧克力”)
您需要使用元组
或列表
:
sub_result = tuple(reversed((ice, other_ice)))
请注意对
tuple
的强制转换-这是因为reversed
返回一个对象,而不是输入的反向。对象必须解释为所需的类型。您正在连接字符串,如果您反转'Ban,Schok'
您将得到'kohcS,naB'
。。。使用打印调试您的代码!在列表中收集2种口味,并反转列表。使用,”。加入(您的调味品列表)
进行打印。反转[“Schok”,“Ban”]
会给你[“Ban”,“Schok”]
谢谢你。我将尝试我的脚本和你的建议。谢谢你的评论。我将尝试在我的代码中实现这一点并进行尝试。Jasmijn提出了一个比我的代码更简单的解决方案,但我仍然需要正确的反应。我为什么不使用索引我不知道!:)在这种情况下,不需要反转。您只需对照(其他_ice,ice)
进行检查即可。既可爱又爽快,谢谢您提醒我可以使用索引!