说我有:
H = [array(a), array(b), array(c)...]
a = [[1,2,3,4,5,6],
[11,22,33,44,55,66], #row 1 of H[0]
[111,222,333,444,555,666]]
b = [[7,8,9,0,1,2],
[77,88,99,00,11,22],
[777,888,999,000,111,222]]
c = ...
Run Code Online (Sandbox Code Playgroud)
我想访问 H[0] 的第 1 行,然后继续访问 H[1] 中的行,依此类推。
我的问题:
1) 如何调用 H[0] 的第 1 行?
2) 那么,在遍历 H[0] 中的所有行后,我如何使循环运行到 H[1]?
我知道我需要类似的东西
for i in range(len(H)):
do stuff to rows until the last row in H[i]
move onto H[i+1]
do same stuff
stop when (criteria here reached)
Run Code Online (Sandbox Code Playgroud)
感谢所有帮助。谢谢你。
编辑:我现在知道我可以访问它,H[0][1]但我实际上需要数组每一行中的第 0 列值。所以,我需要11从H[0][1]. 我该怎么做呢?
Stack Overflow 上有很多关于这个一般主题的问答,但它们要么质量很差(通常是初学者的调试问题暗示的),要么以其他方式错过了目标(通常是不够通用)。至少有两种极其常见的方法会使幼稚的代码出错,初学者从关于循环的规范中获益更多,而不是从将问题作为拼写错误或关于打印所需内容的规范中获益。所以这是我尝试将所有相关信息放在同一个地方。
假设我有一些简单的代码,可以对一个值进行计算x并将其分配给y:
y = x + 1
# Or it could be in a function:
def calc_y(an_x):
return an_x + 1
Run Code Online (Sandbox Code Playgroud)
现在我想重复计算 的许多可能值x。我知道for如果我已经有要使用的值列表(或其他序列),我可以使用循环:
xs = [1, 3, 5]
for x in xs:
y = x + 1
Run Code Online (Sandbox Code Playgroud)
while或者,如果有其他逻辑来计算值序列,我可以使用循环x:
def next_collatz(value):
if value % 2 == 0:
return value // 2
else:
return 3 * value + 1
def collatz_from_19():
x = 19
while x != 1:
x …Run Code Online (Sandbox Code Playgroud) 什么是更快,使用枚举或使用xrange的for循环?
编辑:我已经测试过,我只看到最小的差异.
所以这是我的问题:
首先我迭代
for i in range(1,21):
print (i)
Run Code Online (Sandbox Code Playgroud)
然后我有一个变量 basename="Station"
我想要一个输出为 Station_1.txt、Station_2.txt 等的结果。
我设法将“_”添加到变量 basename 中,例如
mylist1 = ("_")
s = (basename)
for item in mylist1:
s += item
Run Code Online (Sandbox Code Playgroud)
但是现在我遇到了关于如何在变量 basename 之上获取迭代的问题,我可以得到它自己像“Station_, 1, Station_, 2”但不在字符串本身内部。
对不起,这里是一个初学者:)
可能重复:
如何在Python中同时获取列表索引和元素?
我似乎记得有一种内置的方法:
i = 0
for value in values:
# ...Stuff
i += 1
Run Code Online (Sandbox Code Playgroud)
但是用更整洁的语法; 就像是
for value, i in fn(values):
# ...Stuff
Run Code Online (Sandbox Code Playgroud)
我的记忆是否正确; 如果是这样,这样做的方式是什么?
现在,我想将数组转换为这样的字典:
dict = {'item0': arr[0], 'item1': arr[1], 'item2': arr[2]...}
Run Code Online (Sandbox Code Playgroud)
如何在python中优雅地解决这个问题?
我有一个家庭作业。我有以下代码
hey = ["lol", "hey","water","pepsi","jam"]
for item in hey:
print(item)
Run Code Online (Sandbox Code Playgroud)
我是否在项目之前显示列表中的位置,如下所示:
1 lol
2 hey
3 water
4 pepsi
5 jam
Run Code Online (Sandbox Code Playgroud) 显然,如果我们这样做,计数器将保持为0,因为它在每次迭代开始时重置:
for thing in stuff:
count = 0
print count
count =+1
write_f.write(thing)
Run Code Online (Sandbox Code Playgroud)
但是因为我在函数内部有这个代码,所以它也不起作用:
count=0
for thing in stuff:
print count
count =+1
write_f.write(thing)
Run Code Online (Sandbox Code Playgroud)
我有几个不同的缩进级别,无论我如何移动count=0,它要么没有效果,要么抛出UnboundLocalError: local variable 'count' referenced before assignment.有没有办法在for循环内部生成一个简单的交互计数器?
可能重复:
在Python for循环中访问索引
我想知道:Python有类似的东西吗?
for (i=0; i < length; i += 1){ .... }
Run Code Online (Sandbox Code Playgroud)
当然,我可能会说
i = 0
for item in items:
#.....
i += 1
Run Code Online (Sandbox Code Playgroud)
但我认为应该有类似的东西for(i = 0;...),不应该吗?