诚然,我是一个非常缺乏经验的程序员,他的任务是创建一个Python程序,根据其他学生的四种选择(他们想要的3名学生)将学生按酒店房间进行排序。我正在使用一种非常基本的方法,因为我既没有时间也没有能力创建更高级的代码。这当然是一个初学者提出的问题,但我一直在尝试使用itertools.combinations()函数来创建一个长度为4的所有可能的学生组的列表。要执行我的程序的以下步骤,我需要在一个更大的列表中列出4个学生(每个组)。到目前为止,我尝试过的一切都不起作用,下面代码的计划依赖于创建一个4组的嵌套列表。
for comb in itertools.combinations(names,
我想在Python中迭代+枚举两个列表。下面的代码看起来很难看。有没有更好的解决方案?
for id, elements in enumerate(itertools.izip(as, bs)):
a = elements[0]
b = elements[1]
# do something with id, a and b
谢谢。
如果这件事在别的地方得到了答复,我很抱歉,但如果是的话,我还没有找到。
我想对一个对象进行迭代,并构建一个符合我的评估标准的x项列表。我想停止迭代,一旦我达到了我的门限的项目数。我尝试过使用while循环和计数器来完成这个操作,这在Python中几乎从未见过,现在我正在使用for循环和一开始的测试条件。我现在所做的是可行的,但我认为一定有一个更好的模式,也许可以使用我运行x次的生成器。
list_length = 25
list_results = []
for item in some_object:
# test if list length condition met
我有一个列表,我想从两个类似的连续元素中得到一个元素。(sort或if is not in new_list不工作,因为我希望保留那些不连续的相似元素)
我已经编写了这篇文章,但是它返回了一个i+1不在范围内的range函数的错误:
例如:输入:'a','b','b','c','c','a‘输出:'a','b','c','a’
list = ['a','b','b','c','c&
嗨,我有一个for循环,它用下面的结构在每次迭代中创建一个2d列表
listStructure = [(,1,2,3),(1,2,3)]
问题是我有以下代码
l = []
for element in range(2):
a function that returns the above mentioned listStructure
l.append(listStructure)
这将返回以下结构
l = [[(1,2,3),(1,2,3)],[(1,2,3),(1,2,3)]]
是否有确保list具有以下结构的方法?
l = [(1,2,3),(1,2,3),(1,2,
我知道下面的语法是off的,但是我很难理解应该如何编写这个语法。我想要做的是把列表“列表”创建一个字典,其中键是每个单词与另一个单词的组合,这个词本身不是,每个键的值是0。这是我的破译代码:
lst = ('human', 'loud', 'big')
for words in lst:
first = words
for words in lst:
if words != first:
scores = {'%s + %s': 0, % (first, words)}
字典
假设我们有一个列表[Y, X, 4, Y, 3, X, 2, X]
我希望能够删除所有元素,这些元素的前面有一个X,也可以删除X本身。因此,结果应该类似于[Y, Y, 3]。用什么来做这件事呢?
我想出了一些类似的东西,但我觉得它很笨重,不干净。有更好的方法吗?
list = [Y, X, 4, Y, 3, X, 2, X]
is_preceded = False
result = []
for i in list:
if i == 'X':
is_preceded = True
elif is_preceded == True:
我正在编写一个函数,它将返回列表的元素,直到该列表中的第一个偶数。
def up_to_even(list):
new_list = []
for num in list:
if num % 2 != 0:
new_list.append(num)
else:
return new_list
我做错了什么?
我已经创建了两个元组列表,一个是每个可能的3字母组合的列表,另一个是每个可能的4位数字组合的列表。我现在需要组合每个元组元素来创建一个字符串,并且我尝试使用-join()函数,但由于某种原因它不起作用。我使用了这些不同的代码,但结果只得到了一个空列表。
l = combinations('ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ', 3) #List of every 3-letter combination
d = combinations('0123456789', 4) #List of every
我现在试着用节奏曲编程。我有下一个例子-一些数组,哪些元素我想互相迭代.现在,我编写了下一个示例:
a = ['a','b','c','d','e','f']
for posx in range(len(a)):
for posy in range(posx+1, len(a)):
*some operation for these elements*
现在我想问一下Pyhton用户的一些经验,我怎么能减少这么慢的循环呢?这里可以使用zip工具吗?如何理解,
有没有办法在python中使用列表理解来从列表中过滤相邻的重复项?
下面是我的意思的一个例子:
>>> xs = [1,2,2,3]
>>> print added.reAdj(xs)
[1,2,3]
通过SE搜索发现,一个问了一个类似但略有不同的问题:是否所有重复项都可以从列表中删除,,但没有明确询问涉及列表理解的解决方案。使用列表理解的动机特别是对的认可。用户建议使用set()函数或标准循环:
result = []
most_recent_elem = None
for e in xs:
if e != most_recent_elem:
假设你有一个圆孔直径的列表,一个圆柱形螺栓直径的列表。现在的问题是找到所有的方法,你可以把钉装在洞里,把它们放进去的顺序并不重要,在一个太大的洞里放个钉也没关系。
我已经编写了下面的代码来解决这个问题,并且它的工作原理是预期的。答案的最里面的元组与一个孔相匹配,即(4,7)意思是将d4木栓放在d7孔中,而这些元组构成一个集合,代表了一种将所有钉放进去的方法。
我对解决方案并不完全满意。这不是..。够快的,而且感觉太复杂了。有什么更明智的方法吗?
def fit(pegs, holes):
for h in holes:
for p in pegs: