一个在python句子里面的for循环

新手学python,我遇到一个python在句子里面,我不能理解这个for循环是什么意思。
如果改成常见的那种for循环应该怎么写。
我看不懂的代码是这一句

 Q[s, a] = np.sum([T[s, a, sp] * (R[s, a, sp] + discount_rate * np.max(Q_prev[sp]))    for sp in range(3)])

这是完整的代码,运行的环境是jupyter,python版本是3.6.5

 import numpy as np
nan = np.nan
T = np.array([[[0.7,0.3,0.0],[1.0,0.0,0.0],[0.8,0.2,0.0]],
              [[0.0,1.0,0.0],[nan,nan,nan],[0.0,0.0,1.0]],
              [[nan,nan,nan],[0.8,0.1,0.1],[nan,nan,nan]]
             ])
R = np.array([[[10.,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]],
              [[10.,0.0,0.0],[nan,nan,nan],[0.0,0.0,-50.0]],
              [[nan,nan,nan],[40.0,0.0,0.0],[nan,nan,nan]]
             ])
possible_actions = [[0,1,2],[0,2],[1]]

Q = np.full((3, 3), -np.inf)  # -inf 对应着不可能的动作 
for state, actions in enumerate(possible_actions):    
    Q[state, actions] = 0.0  # 对所有可能的动作初始化为0.0
learning_rate = 0.01 
discount_rate = 0.95 
n_iterations = 100
for iteration in range(n_iterations):   
    Q_prev = Q.copy()    
    for s in range(3):        
        for a in possible_actions[s]:            
            Q[s, a] = np.sum([T[s, a, sp] * (R[s, a, sp] + discount_rate * np.max(Q_prev[sp]))  
            for sp in range(3)])
0

1个回答

这句话改成常见写法是:
for sp in range(3):
Q[s, a] += T[s, a, sp] * (R[s, a, sp] + discount_rate * np.max(Q_prev[sp]))

举个例子:
t = [i for i in range(3)]
相当于:
t = []
for i in range(3):
t.append(i)
这是一种非常方便的写法。

0
cjk_cjk
cjk_cjk 回复qq_34644971: 你好,这是因为在我们加的for循环前面需要初始化,Q[s,a]=0.0
10 个月之前 回复
qq_34644971
qq_34644971 你好,我把有疑问的那一句换成了你说的那种写法,然后输出Q,结果和原本的代码输出Q,结果是不一样的。
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
for循环中的闭包应用
1、下面代码的输出为什么?使下面代码的输出结果为0 1 2 3 4,应如何修改下面的代码?请使用多种方式来实现for(var i=0;i<5;i++){n setTimeout(function(){n alert(i);n },100)n}n上述代码会输出5个5。因为setTimeout是一个异步任务,它会在循环完成后才进行,此时i=5.若要实现输出结果为0 1 2 3 4,也可...
python里面的for循环
python里面的in后面的内容指的是可以从in后面一次取出元素nfor example 1n#遍历数字序列nthe_count = [1,2,3,4,5]nfor i in the_count :nprint(f"这是一个数字{i}")`n输出结果:n这是一个数字1n这是一个数字2n这是一个数字3n这是一个数字4n这是一个数字5nfor example 2nfruits=[‘apples’,‘...
for循环内局部变量的生命周期
for (int i = 0; i != 10; i++) n{ n int j; n j = i; n cout << j << endl; n cout << &j << endl; n} i 的生命周期是从循环开始到循环结束,共10次循环;j的生命周期只能延续1次循环,后被销毁(j的值 和j的地址都不存在了)。下一次循环,重新声明新变量j;
三个python内置函数,帮你设计灵活性更强的for循环
range()rnrnrn 在Python中,for循环后的in跟随一个序列的话,循环每次使用的序列元素,而不是序列的下标。rnrnrn 之前我们已经使用过range()来控制for循环。现在,我们继续开发range的功能,以实现下标对循环的控制:rnrnrnS = 'abcdefghijk' for i in range(0,len(S),2): print S[i]rnrnrn 在该例子中,我
Python的for循环以及缩进错误
写在前面:n首先,Python和Java是不一样的,Java是有段落,类,块之分的,Java中for循环是有{ }大括号进行约束的,但是在Python中是用缩进进行区分的:也就是说在 for 循环后面,没有缩进的代码都只执行一次,而不会重复执行,只有缩进的地方才是代码块,才会重复执行。nmagicians = ['alice', 'david', 'carolina']nfor magician ...
python中的for循环
在python2里for循环一般是采用以下形式nn                     1:  for i in range(a,b,c):nn                               语句snn                     2:for i in xrange(a,b,c):nn                              语句snn在python...
for循环中的逗号表达式
被问到这样一个问题,for循环判断部分中能否写定义?就像下面:#include &amp;lt;stdio.h&amp;gt;int main(){    for(int i=0; int j , j&amp;lt;3 ; i++ , j++)    {        printf(&quot;test\n&quot;);    }    return 0;}当时没答上来,回头上代码测试了一下,发现是不可以的。编译报错。去掉int,在外面定...
python for循环作用域的坑
直接上图:nnnnnnnn这里for循环里面的x作用域衍生到循环外面了。nn
当for循环遇到逗号运算符
for循环在是在编程中用的比较多的循环语句了,逗号运算符在实际编程中用到的不是很多,一般就用到定义变量的时候吧,其它的地方自己不会用,用了也怕别人看不懂. n今天在别人的代码中就遇到了,为了测试它的作用,就写了如下的代码:for(int i = 5, j = 10; j, i; i--, j--)n{n cout << i << "," << j << endl;n}大家先猜一下,会输出什么.
POJ 4104:单词翻转
问题描述:nn输入一个句子(一行),将句子中的每一个单词翻转后输出。nn输入nn只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。nn输出nn翻转每一个单词后的字符串,单词之间的空格需与原文一致。nn样例输入nnnhello worldnn样例输出nnnolleh dlrown代码如下:nnn#include &amp;lt;iostream&amp;gt;n#include&amp;lt;cstring&amp;...
python-在英文句子中查找单词并突出显示
import nltk #自然语言处理rnimport re #正则rnfrom colorama import Fore,Back,Style #改变终端输出字体和颜色rnex_sent = "I have a pen and a pencil. But Idon't want the pen, I just want a pencil."rnsp_sent = nltk.word_tokeni
Python程序中for循环用法详解
Python程序中for循环用法详解一个通用的序列迭代器,用于遍历任何有序的序列对象内的元素,可用于字符串、元组、列表和其它内置可迭代对象,以及通过类所创建的新对象。1、for循环语法格式:for expression in object:       for_suiteelse:       else_suite2、for语法格式扩展:for expression in object:     ...
关于for循环里边是否可以用return语句
一、关于returnnnreturn语句的作用是指定函数返回的指。return语句只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误!用return语句来终止一个函数的执行。如果return后面不返回值,则把值undefined赋给调用当前函数的表达式。nnreturn语句一般用法: n 1.返回函数结果:return a; n 2.阻止默认事件或者阻止往下执行:return fa...
for循环保存i值的方法
通常情况下,因为一些效果我们需要获取到for循环中的i的值,但是往往拿到的都是最后一个i的值。下面介绍几种方法可以获取到i的值n1.自定义属性narr[i].index = i;n2 自执行函数:nfor(var i = 0 ; i < 5; i++){n (function(n){n setTimeout(function(){n console.log(n)n },10
for语句和if else 语句嵌套使用为啥只能运行一次,而不是循环
鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HAART),由美籍华裔科学家何大一于1996年提出,是通过三种或三种以上的抗病毒药物联合使用来治疗艾 滋病。该疗法的应用可以减少单一用药产生的抗药性,最大限度地抑制病毒的复制,使被破坏的机体免疫功能部分甚至全部恢复,从而延缓病程进展,延长患者生 命,提高生活质量。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗...
for循环定义的临时变量
for i in range(5):n print(i)输出的结果:就是1到5for循环结束后,i这个变量是否还会存在?for i in range(5):n print(i)nprint(i)结果是:012344变量i 的值为最后一次赋值的数字4因为只有函数,类定义的变量可以是局部变量其他的变量,都是全局变量for循环时创建的临时变量也不例外,仍然是全局变量。...
Python for循环之查找下一个记录
我们在使用for循环的时候,由于python语言的高效性,致使我们渐渐忽略了一个很重要的角色,index。rn      怎样查找当前记录的下一条记录呢?rn      li1 = [3, 4, 5, 6, 7]n i = 0n for rec in li1:n print "this record is: " + str(rec)n if i + 1 < l
for循环将字典添加到列表中出现覆盖前面数据的问题
n n &amp;#13;n 出现问题:&amp;#13;n&amp;#13;nrets = [{'id':1},{&quot;id&quot;:2},{&quot;id&quot;:3}]&amp;#13;n&amp;#13;ncontext = {}&amp;#13;ncontext['count'] = len(rets)&amp;#13;nreq = []&amp;#13;nres = {}&amp;#13;n&amp;#13;nfor ret in rets:&amp;#13;n
python for循环内输出和外输出
通过for循环求和,结果发现输出完全不一样,一个循环是输出每一步的结果,另一个循环是输出最终一次的结果,今天终于弄懂了。如下所示:nnnn
Python中的for循环列表
我在机器学习实战中看到了这两条语句:nnn nfeatList = [example[i] for example in dataSet]n n n nclassList = [example[-1] for example in dataSet]n n nn具体作用和含义是:nn语句featList = [example[i] for example in dataSet]作用为:n   将da...
python学习笔记02(for、字符串、字符串格式化、for循环嵌套)
for循环for i in range(1, 101):   print i表示从1开始,到101为止(不包括101),取其中所有的整数。for i in range(1, 101)就是说,把这些数,依次赋值给变量i。1~100求和:sum = 0nfor i in range(1,101):n sum = i + sumn print(&quot;i=&quot;)n print(i)n p...
Python中if判断表达式和for循环
一、if判断表达式。if 中文就是如果的意思。在Python中,if后面会跟一个判断条件,这个条件只会为真假。else 否则的意思。当if条件不成立时,那就要输出else(else后面不需要写条件)。else即为除了if条件的其他条件。age=12nif age&amp;gt;18:n print('你已经成年了')nelse:nprint('你还是个宝宝')因为变量age=12,已经对变量进行了一...
for循环里,先执行完block代码再执行下一次循环
求助各路前辈,各路大神rn我现在做一个通讯录,我的思路是这样的,因为通讯录里面是分部门的,如"人事部",“研发部”等,depList这个数组存的就是参数,key就是参数。例如:每次把“人事部”传入这个参数,进行请求,回调函数就会返回“人事部”的成员的数据,如此类推,每次需要传入不同部门的参数,我把每个部门的数据返回来,添加到可变数组“save1”里面,然后最后写入plist文件。用tablevie
java和python中for循环的差异
大家都知道在for循环中 break是跳出当前循环,continue是跳出该循环条件后的执行语句。rn如:(大家可以复制跑一遍就知道了,可以把注释去了)rnpublic class ForTest {rnpublic static void main(String[] args) {rnfor(int i=1;irn// if (i==3) {rn// System.out.println("--
关于for循环中的数组拼接
可以使用,append实现在for循环中的数组拼接,但是有一个问题,拼好的数组会多出一个维度2(这是根据拼接的数组的个数而来的)我们可以使用reshape函数将拼好的数组转换成我们想要的维度。由于特征是1024维的,我们需要拼接好的数组满足(-1,1024),即:有N行,1024列。同时标签满足N行1列。...
打响2018第一炮-shell编程之for循环语句
大家好,先祝大家2018新年快乐~~~~nn今天给大家带来的是for循环nnnn1.for循环语句和while循环类似,但是for循环主要是用于执行次数有限的循环,而不是守护进程及无限循环,那么for循环的语法如下:nnnfor 变量名 in 变量取值列表ndon 指令ndonenn在这种for循环语法中,在for关键字后面会有一个变量名,变量名会依次的获取in后面的变量取值列表的内容,每取一个...
python中对与For语句的替换
最近学习了python3,感觉python中对于for的定义更像是foreachnnn 例如: n for i in x n print(x[i]) #前面有tab,nnn而对于这种用惯了for(int i; i小于n; i++) n我自己的解决方案就是用递归:nnn def counnter(n) n …if (n&amp;gt;0)… n …if(n&amp;lt;0) n...
for循环里的逗号“,”和分号";"和冒号":"用法与区别
在路上
Python自然语言处理 10 分析语句的含义
既然已经有了分析机制和基于特征的文法,那么能否做一些类似分析语句的含义的事情?rn回答下列问题:rn(1)如何表示自然语言的含义,并能通过计算机进行处理?rn(2)怎样才能将意思表示与无限制的语句集相关联?rn(3)怎样才能通过连接意思表示与句子的程序来存储信息?rn本章介绍一些逻辑语义方面的规范化技术,看看如何使用它们来查询存储有客观整理的数据库rn一 自然语言理解rn#查询数据库rn目前为止在
python for循环里的参数统统加上int()防止报float类型的错误
file_object = open('GameLogic.py', 'r')nnoutput = open('gamelogic_for_int.py', 'w')nnwhile True:n line = file_object.readline()n if not line:n breakn theplaceoffor = line.find('for')n
[python]反转英文句子
def reverse(li, start, wl):n i, j = start, start + wl - 1n while i < j:n li[i], li[j] = li[j], li[i]n i += 1n j -= 1nndef fan(s):n li = list(s)n llen = len(li)n sta
关于在循环中和在循环外定义变量的区别的思考
变量的声明是在栈中进行的,而实例化则是在堆中,故栈中只有基础数据与实例的引用。 rn故上面程序的不同点: rn1、在外面的定义的变量,只在栈中声明了一次; rn2、在里面的定义的变量,循环多少次就在栈中声明了多少次; rn3、在内存或说资源节省方面,肯定是在外面定义较好,是摧荐的写法;
python中for循环常用方法
总结一些使用python时经常用到的for循环语句。nn#【1】遍历列表nnnlanguages=["c","c++","python","shell"]nfor x in languages:n print(x)nnnn#【2】使用内置range()函数遍历数字序列nnnfor j in range(5):n print(j)nnnn#【3】从3开始遍历(指定区间)nnnfor i ...
循环中定义的变量为局部变量,只能在循环语句中使用
/* n 循环中定义的变量为局部变量,只能在循环语句中使用 n */ npublic class XunHuanBianLiangTest { n public static void main(String args[]){ n for (int i=0;i<10;i++){ n System.out.println(i); n } n //System.ou
python3之四条语句(2)for循环
for循环nnfor循环的作用:用来遍历可迭代对象的数据元素 n什么是可迭代对象:就是指可以被依次获取数据元素的对象 n可迭代对象如:字符串,列表,元组,集合等 n获取可迭代对象的元素一般使用for循环 nfor循环的语法:nnnnfor 变量列表 in 可迭代对象:n 语句块1nelse:n 语句块2nn说明: nelse不是必须的nn举个简单的小栗子nn&amp;gt;&amp;gt;&amp;gt; s...
Python循环中的变量作用域的灵异现象
写在前面的画最近很想看《名侦探柯南》,但是没有时间看啊。时间实在是太少了,吃的不好睡的不好,只好写篇博客,取的名字就像名侦探柯南盗版破案名字山寨版。案件描述事情是这样的,今天写代码,写了三个循环,用的自增变量都是i 然后发现没有得出正确结果,我就奇了怪了。代码逻辑没有问题,可是就是 i的作用域有点奇怪。我们看下面的代码: for i in range(4):n print "first i
python——循环(for循环、while循环)及练习
目标程序的三大流程n1.while 循环的基本使用 n2.break 和 continue n3.while 循环嵌套nn在程序开发中,一共有三种流程方式:n顺序:从上向下,顺序执行代码 n分支:根据条件判断,决定执行代码的分支 n循环:让特定代码重复执行(解决程序员重复工作)nn一、for循环n1、基本用法nfor 循环使用的语法:n“”&quot;nfor 变量 in range(10):n循环...
for循环当中使用定时器的注意事项
实际开发过程中遇到这样的需求,页面加载后会请求多个数据模块,每个模块都进行进度条展示,从零到目标值给一个增长效果。于是给每个子元素绑定一个定时器setInterval,像这样:效果确是这样的:完全错乱了,这可不是我想要的效果呀!查阅资料后才知道,当我们在for循环里面调用定时器时,定时器时异步执行的,没循环一次,i加1,生成一个timer,放到进程队列里面去,等到for循环完成后,i已经加到最大值...
python3 for循环语句
range函数nn作用:nn用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)nn调用格式:nnrange(stop) 从零开始,每次生成一个整数后加1操作,直到stop为止(不包含stop)nnrange(start, stop[,step]) 从start开始,每次生成一个整数后移动step,直到stop为止(不包含stop,且step可以为负整数nn示例:nnnrange(4) #...
PYTHON---for循环练习
1.用户登陆程序需求:n    1. 输入用户名和密码;n    2. 判断用户名和密码是否正确? (name='root', passwd='westos')n    3. 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会, 报错提示;nn&quot;&quot;&quot;nfor i in range(3):n    name = raw_input('用户名:')n    passwd = raw_input(...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大学里面的java班 报一个python班多少钱