Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找反向字符串在字符串列表中是否有匹配项_Python_String_List_Reverse - Fatal编程技术网

Python 查找反向字符串在字符串列表中是否有匹配项

Python 查找反向字符串在字符串列表中是否有匹配项,python,string,list,reverse,Python,String,List,Reverse,我正在学习Python,一个月后,我遇到了以下问题: 冰淇淋店有一系列口味: 口味=[ “香蕉”, “巧克力”, “柠檬”, “开心果”, “覆盆子”, “草莓”, “香草”, ] 他们想建立一个清单,列出2球口味冰淇淋的所有替代品。 味道不能重复: 也就是说,香蕉巧克力不能列入名单,因为香蕉巧克力已经在名单上。 我得把名单打印出来 这是我的密码: result = [] sub_result = "" for ice in FLAVORS: for othe

我正在学习Python,一个月后,我遇到了以下问题:

冰淇淋店有一系列口味:

口味=[ “香蕉”, “巧克力”, “柠檬”, “开心果”, “覆盆子”, “草莓”, “香草”, ]

他们想建立一个清单,列出2球口味冰淇淋的所有替代品。 味道不能重复: 也就是说,香蕉巧克力不能列入名单,因为香蕉巧克力已经在名单上。 我得把名单打印出来

这是我的密码:

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)
进行检查即可。既可爱又爽快,谢谢您提醒我可以使用索引!