gpt4 book ai didi

python - 在 2 个字符串中查找唯一字符

转载 作者:太空宇宙 更新时间:2023-11-04 04:01:18 24 4
gpt4 key购买 nike

我正在编写一个 python 代码来查找 2 个字符串中的常见字符。以下是代码:

class CharactersInString:
def __init__(self, value1, value2):
self.value1 = value1
self.value2 = value2

def find_chars_order_n(self):
new_string = [ ]
new_string1 = " "
new_value1 = list(self.value1)
new_value2 = list(self.value2)
print( "new_value1: ", new_value1)
print( "new_value2: ", new_value2)
for i in new_value1:
if i in new_value2:
new_string.append(i)
print(new_string)
new_list = set(new_string)
final_list = list(new_list)
print(final_list)
print(''.join(final_list))

if __name__ == "__main__":
obj = CharactersInString("hello manzer", "helzo killmse")
print(obj.find_chars_order_n())

期望的输出是 helo mz。上面的代码给我的输出为 elzohm。我想获取唯一字符,而且字符的顺序应按照值 1 进行维护。使用 SET 不提供有序集。我是 python 的新手。你能帮我如何获得所需的输出并保持字符串的顺序吗

最佳答案

您可以添加条件以在附加字母之前查看该字母是否在列表中。

试试下面的代码:

class CharactersInString:
def __init__(self, value1, value2):
self.value1 = value1
self.value2 = value2

def find_chars_order_n(self):
new_string = []
# new_value1 = list(self.value1)
# new_value2 = list(self.value2)
# print( "new_value1: ", new_value1)
# print( "new_value2: ", new_value2)
for i in self.value1:
if i in self.value2 and i not in new_string:
new_string.append(i)
# print(new_string)
# new_list = set(new_string)
final_list = list(new_string)
# print(final_list)
return ''.join(final_list)

if __name__ == "__main__":
obj = CharactersInString("hello manzer", "helzo killmse")
print(obj.find_chars_order_n())

输出:

helo mz

由于我们是在 value1 上迭代,所以我们确信顺序将根据 value1。此外,我们根本没有通过检查 i not in new_string 来添加重复值,因此它应该比“附加”然后使用集合删除更好。

关于python - 在 2 个字符串中查找唯一字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58259971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com