我想产生一个列表理解,它接收一个数字列表,并根据列表中的值调整数字。
例如:
如果列表中的数字大于255,我希望列表理解接受值255,如果列表中的数字<0,我希望列表理解接受值0,任何其他值(在0和255之间)应该被列表理解接受。
我使用的代码是:
num = [260, -2, 124]
adj = [[0 if (n <= 0) else 255 if (n > 255) else n in n if n in range(1,255)]] for n in num)
print(adj)
我已经尝试了上面的方法,但是我得到了语法错误:
File "/User
它更多的是关于python列表理解语法。我有一个列表理解,它生成给定范围内的奇数列表:
[x for x in range(1, 10) if x % 2]
这就产生了一个过滤器--我有一个源列表,我删除了偶数(if x % 2)。我想在这里使用if-then-else这样的东西。以下代码失败:
>>> [x for x in range(1, 10) if x % 2 else x * 100]
File "<stdin>", line 1
[x for x in range(1, 10) if x % 2 else x * 100]
作为一名计算机科学初学者,我被指派编写一个函数,将偶数和奇数列表排序为两个子列表。等等..。别否决我。我一直在自己学习,并尝试了列表理解和timeit,我想知道我是否可以用列表理解来重新创建它,以做一些更具挑战性的事情。
我已经知道如何使用列表理解来扁平子列表,但不是反过来。有可能吗?
def odd_even_filter(numbers):
even = []
odd = []
for i in numbers:
if i % 2 == 0:
even.append(i)
else:
o
我试着理解如何使用python列表理解方法编写下面的代码。在代码中,我需要将字符串与其自身连接起来,乘以列表中的next元素,假设顺序总是以string、int、string的形式出现。是否有一种使用列表理解方法重写以下代码的方法?谢谢。
def array_translate(arr):
i = 0
mystring = ''
while i < len(arr):
pet = arr[i]
if i + 1 < len(arr):
num = arr[i+1]
arr
问题解决了!
我有两个由随机生成的整数组成的python列表。我想找出列表之间常见的数字。
使用列表理解,我想出了以下几点:
new_list = [a for a in list_one for b in list_two if a == b and a not in new_list]
但是,这将返回一个空列表。我有一个使用循环的工作程序,它工作得很好:
for a in list_one:
for b in list_two:
if a == b and a not in new_list:
new_list.append(a)
我把它转
myfile = ["no", "yes", "dog", "dog", "dog", "male"], ["no", "orange", "symbol", "church"]
my_Male_Dict = {}
for word in myfile:
if word in my_Male_Dict:
my_Male_Dict[word] += 1
else:
my_Male_Dict
我在python中创建了以下列表理解:
[int(a[0].internal_value).lower() if type(a[0].internal_value) in (str,unicode) and a[0].internal_value.isdigit() == True
else str(a[0].internal_value).lower() if type(a[0].internal_value) in (str,unicode)
else int(a[0].internal_value) if type(a[0].internal_value) in (float,int
看起来我和下面的问题有同样的问题。但我不理解提议的解决方案: Python using a loop to search for N number and return index 在此场景中,提供了以下内容: 我们将向您传递两个输入: 一列数字 要查找的数字N 您的任务是遍历列表并找到第二个输入中指定的数字。输出找到数字的列表元素索引。 如果列表中未找到N,则输出-1。 这就是我到目前为止所知道的: (提供了import和N) import sys
N= int(sys.argv[2])
(this is also provided) numbers= []
for i in sys.a
在过去的一周里,我一直在提高我的python编程技巧,并且遇到了用于列表理解的条件筛选,这证明了它非常有用。但是,要向if筛选器添加一个子句,python需要一个不同的语法,如下所示:
没有其他子句的列表理解筛选器
squares = [x**2 for x in range(20) if x % 2 == 0]
带有子句的列表理解筛选器
squares = [x**2 if x % 2 == 0 else x + 3 for x in range(20)]
if-else子句必须在表达式x**2之后移到列表理解的开头。
有人能解释一下为什么会这样吗?
这里的问题,问如何做,我知道。我的问题是
我一直在用Python编程。今年,我学习了如何使用它进行递归。
我的教授教我的一个非常好的技巧是使用这样的列表理解:
def list_all(obj):
if not isinstance(obj, list):
return [obj]
else:
return sum([list_all(x) for x in obj], [])
现在我越来越多地使用JS而不是Python,我想知道在语言中可以使用什么特定的内置函数来帮助递归。我知道列表理解在JavaScript中是不可取的,所以我显然不能再使用它们了。在处理递归时,映
学习列表理解并发现if/if- and语句可以按不同的表达顺序排列。例如,从for循环模式开始理解列表理解结构:
positive = []
for number in numbers:
if int(number) >= 0:
positive.append(int(number))
else:
positive.append(0 - int(number))
可对以下方面进行评价:
positive = [int(number) if int(number) >= 0 else 0 - int(number) for number
是否可以为下列python代码编写列表理解:
for str in range(0,len(mixed_content)):
if (mixed_content[str].isdigit()):
num_list.append(mixed_content[str])
else:
string_list.append(mixed_content[str])
我们可以在列表理解中使用其他块吗?我试图为上面的代码编写列表理解:
num_list , string_list = [ mixed_content[str] for str in ran
我有一个元组列表:
tuples = [(0,1), (2,0), (3,4), (1,2) etc. ]
我想创建另一个列表,其中包含所有与0配对的数字。我试着用一种列表理解来做这件事:
relations = [x[1] if x[0] == 0 else x[0] if x[1] == 0 for x in tuples]
但是,这会给出一个错误。Python似乎不喜欢'x‘是一个元组。“关系”可以用列表理解来定义吗?或者我需要写更长的代码吗?
注:我不喜欢使用任何外部模块,因为这是为了面试准备的目的。
我知道在python中没有内置的链接列表DS。但是,我们可以通过类节点来实现链接列表.在下面的代码中,我执行了一个方法(intersect_ll)来在两个链接列表之间找到一个交集,其中节点的定义:节点在两个链接列表中的顺序和值是相同的:
class Node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
class SingleLinkedList:
def __init__(self):
在Python中处理列表时,我常常想简单地从列表中筛选出条目。
numbers = [5, 1, 4, 2, 7, 4]
big_nums = [num for num in numbers if num > 2]
对我来说,这似乎是不必要的冗长。我必须在两个单独的语句(num for num ...)中定义和使用num,即使我不对num执行任何操作。
我尝试过[num in numbers if num > 2],但是python抛出了一个SyntaxError。
在Python中有没有一种更简洁的方法来实现这一点?
编辑:
我的问题是,是否有更好的方法来做我正在尝试用Pytho
刚接触编码和python,并开始练习Codewar。其中一个形是: 给定两个数组a和b,编写一个函数comp(a,b)来检查这两个数组是否具有相同的元素,具有相同的重数。在这里,“相同”的意思是,b中的元素是平方的元素,而不考虑顺序。 因此,我用Python编写了一些代码来比较python中的两个列表,但是我得到的答案并不是预期的结果。它看起来像是一个我找不到的bug。 def comp(array1, array2):
# Check if None is provided
if array1 is None or array2 is None:
retur
我有一个名为parent_list的父列表,还有两个子集来过滤parent_list。这些子集也是python列表,它们被称为filter1和filter2。
我可以这样做:
final_list = [object for object in parent_list if object.pk not in filter1 or filter2]
或者,我需要单独执行此过滤操作,如:
intermediate_list = [object for object in parent_list if object.pk not in filter1]
final_list = [object fo
我正在学习python并学习google代码课程。在list2.py示例中,他们要求我们编写一个函数:
给定两个按递增顺序排序的列表,创建并返回按排序顺序排列的所有元素的合并列表。您可以修改传入的列表。理想情况下,解决方案应该在“线性”时间内工作,对两个列表进行一次传递。
他们给出了密码:
def linear_merge(list1, list2):
result = []
#Look at the two lists so long as both are non-empty.
#Take whichever element [0] is smaller.
whil
有没有一种聪明的方法可以在Python语言中遍历两个列表(不使用列表理解)?
我的意思是,就像这样:
# (a, b) is the cartesian product between the two lists' elements
for a, b in list1, list2:
foo(a, b)
而不是:
for a in list1:
for b in list2:
foo(a, b)
我想使用两个for循环来迭代两个大的列表,但是不会发生任何事情。以下是代码
pfam = open(r'D:\RPS_data\pfam_annotations.tbl', 'r')
number = []
description = []
for j in pfam:
number.append(j.split('\t')[0])
description.append(j.split('\t')[-2])
print len(number),len(description)
for j in number:
我有两个嵌套的列表,我想写一些代码来运行这两个列表中的每个子列表,并将在两个列表中一起出现的任何元素组合在一起。我正在做的项目实际上有很大的嵌套列表,所以我创建了以下两个列表来简化问题(我只有一年的python经验)。如果一个函数可以将这两个列表中的元素组合在一起,那么我就可以将该函数应用到实际的项目中。这个问题可能类似于:Find items that appear together on multiple lists,但我不能理解那个问题中写的代码,正如我所说的,我对python相对较新。 my_list = [['a', 'd', 'l'
我的问题是关于Python 列表理解的可读性。当我遇到带有复杂/嵌套列表理解的代码时,我发现我必须重新阅读它们几次才能理解其意图。
有没有一种直观的方法来朗读列表理解?似乎我应该从中间开始“阅读”,然后阅读if条件(如果有),最后阅读表达式。
下面是我如何朗读下面这行代码,以便理解它:
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
对于列表x中的每个元素和列表y中的每个元素,如果这两个元素不同,将创建一个元组列表。
我正在努力的两个例子:你如何大声朗读下面的列表理解?
堆栈溢出:[x for b in a for x in b]Pyt
我正在尝试使用python中的列表理解来扁平化列表。我的清单有点像
[[1, 2, 3], [4, 5, 6], 7, 8]
只是为了打印列表中的单个项目,我编写了以下代码
def flat(listoflist):
for item in listoflist:
if type(item) != list:
print item
else:
for num in item:
print
你好,这是我的Python代码:
test = [test[i-1]+3 if i > 0 else 4 for i in range(0, 10)]
我的问题是,我想要使用一个理解列表:
test[0] = 4
test[i] = test[i-1]+3 if i > 0
我想用一个理解列表来做这件事。
我试图在一个包含术语"FX“的列表中使用filter函数和lambda过滤掉项目。这样做很好:
MarketnoFX=list(filter(lambda x: "FX" not in x, Openmarket))
但是,这个列表需要耦合到另外两个包含数值的列表中,因此如果这个列表中省略了xth项(通过创建一个新的列表),那么它也必须从其他2个列表中省略。我通常只是简单地使用列表理解。
Openmarket=[someitems]
coupled1=[]
coupled2=[]
for item in Openmarket:
if "
#for 1d lists
x = [1,2,3]
y = [1,2,3]
print([True if x[i]==y[i] else False for i in range(len(x))])
#for 2d lists
d=[[0,0,0,0],[0,0,0,0],[0,0,0,0]]
e=[[0,0,1,0],[0,0,0,0],[0,0,0,0]]
for i in range(0,len(d)):
for j in range(0,len(d[i])):
if d[i][j]==e[i][j]:
continue
我有两个 非常大 列表 和 ..。我想生成一个新的列表 长度的 它的所有位置都有1 在哪里 是在 ,否则为0。在Python中执行此操作的计算效率最高的方法是什么?换句话说,有没有比下面更有效的方法? C = []
for x in A:
if x in B:
C.append(1)
else:
C.append(0)
我不知道在Python中它是否是可能的,这就是为什么我在这里问它的原因。
我有一个Python函数,它返回一个tuple:
def my_func(i):
return i * 2, 'a' * i
这只是一个简单的函数,它给出了一个数字k,它按原样返回k * 2,另一个字符串是字母'a‘级联的k时间。
现在我想要形成两个列表,用i = 0...9调用函数,我想创建一个包含所有第一个值的列表,另一个包含其他值的列表。
我用我目前的知识所做的是:
选项1:运行相同的列表理解两次,这不是很有效:
first_vals = [my_func(i)[0] for i i
假设我在Python中有这段代码。我是一个Perl程序员,正如您可能知道的那样。
# Both list1 and list2 are a list of strings
for x in list1:
for y in list2:
if y in x:
return True
return False
还有什么更好的方法来处理这件事?我认为一个列表理解可以做得很好,但我无法理解其中的“处理两个单独的列表”部分。
这个想法刚刚出现在我脑海中。比方说,无论出于什么原因,您都希望通过Python中的列表理解来获取列表的唯一元素。
[i if i in {created_comprehension} else 0 for i in [1, 2, 1, 2, 3]
[1, 2, 0, 0, 3]
我不知道,我真的没有这样做的目的,但如果可以参考它正在创建的理解,那就太酷了。
(例如,是一个类似的问题)
在搜索在python中的列表中查找重复条目的方法时,有人发布了一个在python中工作的解决方案,而我无法解释三元逻辑。
帖子就在这里,
守则是:
seen = set()
dupes = [x for x in list if x in seen or seen.add(x)]
原来的海报很有帮助,说明了它等同于:
dupes = []
for x in list:
if x in seen:
dupes.append(x)
else:
seen.add(x)
如果x.我找不到任何搜索表单三元的引用.或者..。
有人能帮我把这里所有的逻辑都弄清