可能重复:
在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;...),不应该吗?
我的目标是训练固定数量的时期或步骤的神经网络,我希望每个步骤都使用 .tfrecords 文件中的一批特定大小的数据。
目前我正在使用此循环从文件中读取:
i = 0
data = np.empty(shape=[x,y])
for serialized_example in tf.python_io.tf_record_iterator(filename):
example = tf.train.Example()
example.ParseFromString(serialized_example)
Labels = example.features.feature['Labels'].byte_list.value
# Some more features here
data[i-1] = [Labels[0], # more features here]
if i == 3:
break
i = i + 1
print data # do some stuff etc.
Run Code Online (Sandbox Code Playgroud)
我是一个 Python 菜鸟,我怀疑在循环之外创建“i”并在达到某个值时中断只是一种老生常谈。
有没有一种方法可以让我从文件中读取数据,但指定“我想要标签功能中包含的 byte_list 中的前 100 个值”,然后指定“我想要接下来的 100 个值”。
澄清一下,我不熟悉的事情是以这种方式循环文件,我不太确定如何操作循环。
谢谢。
让我用一个现实生活中的代码示例来解释我的问题:
message = "hello"
for char in message:
print(char)
Run Code Online (Sandbox Code Playgroud)
这个程序输出是:
h
e
l
l
o
Run Code Online (Sandbox Code Playgroud)
但我想知道角色位置。当我使用str.index()它时变成:
message = "hello"
for char in message:
print(char, message.index(char))
Run Code Online (Sandbox Code Playgroud)
输出:
h 0
e 1
l 2
l 2
o 4
Run Code Online (Sandbox Code Playgroud)
该L位置是2,而不是2和3!迭代此消息时如何获取字符位置?
我尝试了以下代码,但到目前为止还没有奏效,它说我不能
names = ['John Johnson Doe', 'Jane Janis Doe']
firstnames = []
for name in names:
firstnames.append(names[name].split(' ')[0])
print(firstnames)
Run Code Online (Sandbox Code Playgroud)
我在这里得到的错误是:
TypeError: list indices must be integers or slices, not str
Run Code Online (Sandbox Code Playgroud) 我试图使用索引循环遍历 python 中的列表,但它会抛出错误。你们能帮我解决这个问题吗?可以解决这个问题的语法是什么?
abs = [10,20,40]
for i in abs:
new_abs = abs[i]+ abs[i+1]
print(new_abs)
Run Code Online (Sandbox Code Playgroud)
因此,我设法使用硬代码来临时使用。
abs = [10,20,40]
new_abs = [ abs[0], abs[0]+ abs[1] , abs[1]+abs[2] ]
print(new_abs)
Run Code Online (Sandbox Code Playgroud)
您能否让我知道循环该索引号的正确语法?
如何每隔一个数字加 1?
例子:
2323 -> 2424
1112 -> 1213
3912 -> 31013
Run Code Online (Sandbox Code Playgroud)
这就是我现在所拥有的:
def plus_to_every_second(integer):
integer = str(integer)
integer_new = ''
for i in integer:
if integer.find(i) % 2 != 0:
integer_new += str(int(i) + 1)
else:
integer_new += i
return integer_new
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它不起作用。但实际的解决方案是什么?
可能重复:
在Python for循环中访问索引
list = [1,2,2,3,5,5,6,7]
for item in mylist:
...
Run Code Online (Sandbox Code Playgroud)
如何在循环中的某个时刻找到我正在查看的项目的索引?我可以看到有一个index()方法,lists但它总是给我一个值的第一个索引,所以它不适用于具有重复项的列表
我在python脚本中有一个简单的For循环:
for filename in filenames:
outline= getinfo(filename)
outfile.write(outline)
Run Code Online (Sandbox Code Playgroud)
此For循环是从HTML页面中提取数据的较大脚本的一部分.我有近6GB的html页面,并希望在我尝试所有这些之前进行一些测试运行.
我已经搜索但是找不到一种方法可以在n次迭代后使我的For循环中断(比方说100)
所以我有一个列表,如:
L = ['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)
和
for x in L:
print(x)
Run Code Online (Sandbox Code Playgroud)
回报
'a'
'b'
'c'
'd'
Run Code Online (Sandbox Code Playgroud)
但我想看看
1. 'a'
2. 'b'
3. 'c'
4. 'd'
Run Code Online (Sandbox Code Playgroud)
我希望这个工作适用于列表可能增长或缩小的任何大小.我尝试了一些东西,但我对编程很新,没有任何工作.
我试图在列表理解中重写以下内容,但我正在努力添加计数器:
create_list = []
counter = 0
for x in my_list:
create_list.append(f(x+counter))
counter += 1
Run Code Online (Sandbox Code Playgroud)
我试过了:
create_list = [f(x+counter) for x in my_list] 但显然这不会增加反击.
python ×10
for-loop ×3
list ×3
python-2.7 ×2
arrays ×1
indexing ×1
loops ×1
numpy ×1
tensorflow ×1