Closed. This question needs details or clarity。它目前不接受答案。
想改进这个问题吗?添加细节并通过editing this post澄清问题。
三年前关闭。
I have a line of code like this:
我记得我的老师说我们应该在有“for”的时候开始写新行
so, is there a way to write this code that looks like:
或者别的什么?
变成:
如果希望在迭代数据时添加异常处理、日志记录或更复杂的函数或行为,这将非常有用。
例如:
但一般来说,列表理解是一种完全合法的写作方式。
想改进这个问题吗?添加细节并通过editing this post澄清问题。
三年前关闭。
I have a line of code like this:
list1=[string1[i:i+int1] for i in range(0, len(string1), int1)]
我记得我的老师说我们应该在有“for”的时候开始写新行
so, is there a way to write this code that looks like:
for i in range(0, len(string1), int1):
#something here
或者别的什么?
最佳答案
你的意思是从一个无聊的老规则中提取一个?
list1=[string1[i:i+int1] for i in range(0, len(string1), int1)]
变成:
list1 = list()
for i in range(0, len(string1), int1):
list1.append(string1[i:i+int1])
如果希望在迭代数据时添加异常处理、日志记录或更复杂的函数或行为,这将非常有用。
例如:
list1 = list()
for i in range(0, len(string1), int1):
log.info('in loop: i={}'.format(i))
try:
data = string1[i:i+int1]
except:
log.error('oh no!')
# maybe do something complex here to get some data anyway?
data = complex_function(i)
log.debug('appending to list: data={}'.format(data))
list1.append(data)
但一般来说,列表理解是一种完全合法的写作方式。
关于python - 有没有办法将列表理解重写为for循环? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36405026/