编辑:谢谢你的回复,这是有帮助的,但我不确定他们是我的问题的核心.在某些情况下,简单地选择列表中较低的列表然后相应地添加值会很好,但在这种情况下,我实际上想要处理不均匀的列表,就好像较短的列表对于缺少的值具有零值.所以我希望[1,2,3] + [1,2]起到[1,2,3] + [1,2,0]的作用.我认为拉链或反转我的操作员不会实现这一点.
我正在尝试创建一个函数,它添加两个列表的相应值,并返回一个新列表,其中包含两个原始列表的每个索引的总和:
def addVectors(v1, v2):
print(v1[0], v1[1], v2[0])
newVector = []
if len(v1) > len(v2):
for index in range(len(v1)):
print(index)
newVector[index] += v1[index] + v2[index]
else:
for index in range(len(v2)):
print(index)
newVector[index] += v2[index] + v1[index]
return newVector
addVectors([1, 2, 3], [1, 2])
Run Code Online (Sandbox Code Playgroud)
然而,我收到一条错误,指出列表索引超出范围?不知道我在这个看似简单的程序中做错了什么....
我有一个while循环:
while parent != None:
pathList.append(parentMap[parent])
parent = parentMap[parent]
Run Code Online (Sandbox Code Playgroud)
我想用这个列表做的只是将父值的父值(已在代码的其他部分中确定)添加到列表中,直到我到达树的顶部并且不再有父项.while循环的工作原理是,一旦为parentMap [parent]提供了无效的[parent]键,它将被赋值为"None",循环将终止.这不会发生.相反,一旦我到达最顶层的键(5,5),程序就会抛出一个错误,指出"无效密钥".思考?
我有一段代码循环,直到引发错误或将值None分配给变量"parent".在每个循环中,它将一个值附加到列表,称为actionList.通过print语句,我知道列表在循环的每次迭代中都在增长.但是,在我退出循环后(通过捕获的KeyError),print语句显示该列表现在被赋值为None.知道发生了什么事吗?
while parent is not None:
print "iterating"
print actionList
try:
pathList.append(parentMap[parent])
except KeyError:
break
actionList.append(actionMap[parent])
parent = parentMap.get(parent, None)
return actionList.reverse()
Run Code Online (Sandbox Code Playgroud)
经过进一步检查,一旦我离开循环,看起来动作列表仍然完好无损.但是,当在actionList上使用reverse()方法时,它会消失.我使用reverse()错了吗?
为什么PyDev给我这个错误:当我尝试为反转计数算法实现一个简单的类时,"类变量未定义"?这是我的代码:
from collections import deque
Class inversionCount:
def __init__(self, n):
self.n = n
def inversionMergeSort(m, n):
print m
if len(m) <= 1:
n = 0
return (m, n)
half = len(m)/2
left = m[0:half]
right = m[half:]
left = mergeSort(left)
right = mergeSort(right)
return inversionSort(left, right)
def inversionSort(left, right, n):
leftQueue = deque(i for i in left)
rightQueue = deque(j for j in right)
orderedList = []
while len(leftQueue) > 0 or len(rightQueue) > 0:
if len(leftQueue) > 0 and …Run Code Online (Sandbox Code Playgroud) 可能重复:
如何迭代两个列表 - python
我想同时迭代两个项目,在我看来迭代看起来像这样:
for elem1 in list 1 and for elem2 in list2:
do something to elem1; do something to elem2
Run Code Online (Sandbox Code Playgroud)
但是,这种语法是不可接受的.为了清楚起见,我不是在讨论嵌套for循环,因为那时我将迭代第一个列表中每个元素的整个列表.我希望串联迭代两个列表(或其他).有没有pythonic方式来做到这一点?
我想使用Python的calendar模块生成一个给定年份中每个星期一和星期六的yyyy-mm-dd格式的日期列表(或者如果它更合适,则为其他东西,但我不希望引入外面的图书馆).
但是,为您提供全年数据的功能就像calendar.calendar()输出字符串格式的日历一样,不用说,这将是不合理的繁琐工作.
我想要的是calendar.monthcalendar,它返回一个矩阵,每个列表有7个条目,每个矩阵代表一周中有序的一天.然而,这对我周一和周六的问题来说也很麻烦,因为有些周会持续2个月(即月末和月初).
我想我可以制定一个尴尬的黑客来解决这个问题,但我希望有一个更好的方法我可以忽略它.
我有一个使用Twitter Bootstrap创建的导航栏:
<div class="navbar-inner navlinks">
<ul class="nav">
<li><a class="brand" href="#"><img src="img/logo.png" /></a></li>
<li><a href="#">Accueil</a></li>
<li><a href="#">Ouvrez</a></li>
<li><a href="#">Decouvrir</a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
我可以通过更改navlink类中的属性来轻松覆盖字体颜色,填充等.但是,导航栏列表中的链接(例如默认情况下在Twitter Bootstrap中具有大量文本阴影/渐变属性).唯一的方法是覆盖这些以将每个属性设置为某个默认级别,或者CSS中是否有某些东西可以让我一举恢复"常规"设置?