我有一个清单word_list = ['cat', 'dog', 'rabbit']。我想使用列表理解来打印列表中的每个单独字符,但删除任何重复的字符。这是我的代码:
word_list = ['cat', 'dog', 'rabbit']
letter_list = [""]
letter_list = [letter for word in word_list for letter in word if letter not in letter_list ]
print(letter_list)
Run Code Online (Sandbox Code Playgroud)
这返回的['c', 'a', 't', 'd', 'o', 'g', 'r', 'a', 'b', 'b', 'i', 't']结果不是期望的结果['c', 'a', 't', 'd', 'o', 'g', 'r', 'b', 'i'],我不明白为什么。
使用(某些)Python 内置类型,是否可以引用我们声明的对象?通过“(某些)内置类型”,我想到了例如序列类型、映射类型或集合类型,显然不是数字类型。
我的意思是,无需自己创建类并添加此功能(无需创建子类)。
因此,类似于this下面示例中使用的关键字。
例如,对于“dict”Python 内置类型,如下所示:
a_dictionary = {
"key_1": "value_1",
"key_2": "value_2",
"key_3": this["key_1"] + "_" + this["key_2"] # == "value_1_value_2"
}
Run Code Online (Sandbox Code Playgroud)
甚至:
a_dictionary = {
"sub_dict_1": {
"key_1": "value_1_1",
"key_2": "value_1_2",
"key_3": this["key_1"] + "_" + this["key_2"] # == "value_1_1_value_1_2"
},
"sub_dict_2": {
"key_1": "value_2_1",
"key_2": "value_2_2",
"key_3": this["key_1"] + "_" + this["key_2"] # == "value_2_1_value_2_2"
}
}
Run Code Online (Sandbox Code Playgroud)
我读了 :
在python中进行函数链接时,有没有办法引用“当前”对象?
在 Python 中进行列表/字典理解时是否可以访问当前对象?
和其他一些,但它与我的问题开头描述的要求不符。
非常感谢你的帮助!
lsit_a = [2, 4, 3, 6, 3, 8, 5]
Run Code Online (Sandbox Code Playgroud)
列表理解非常有用。
list_b = [a**2 for a in list_a]
Run Code Online (Sandbox Code Playgroud)
我想知道如何在python列表理解中编写自引用。
例如 -
list_c = [a**2 if i == 0 else a*2 + (itself[i-1]) for i, a in enumurate(list_a)]
Run Code Online (Sandbox Code Playgroud)
怎么写的一部分itself[i-1]?
对不起,我的解释不好。
我想通过高速方式获得这份清单。
list_a = [0,0,1,0,0,0,1,0,0,1,0]
list_c = [0,0,1,0.9,0.8,0.7,1,0.9,0.8,1,0.9]
就像锯齿列表。
这个想法刚刚出现在我的脑海中。假设您出于某种原因想要通过 Python 中的列表理解来获取列表的唯一元素。
[i if i in {created_comprehension} else 0 for i in [1, 2, 1, 2, 3]
[1, 2, 0, 0, 3]
我不知道,我确实没有这样做的目的,但如果可以在创建时引用理解,那就太酷了。
(例如,如何使用列表理解从列表中删除重复的项目?是一个类似的问题)