python3列表for
A. 请问如何用python让3个for循环按照以下方式运行
用生成器
# 迭代目录下每一个文件
def iter_dir(path):
....for file inos.listdir(path):
........yield ...
# 迭代excel中工作表?行?
def iter_excel(file):
....with xlrd.open_workbook(file) aswb:
........for ....
............yield ...
#同时迭代两个目录中的文件与Excel中某对象
def myiter(path1,path2,excelfile):
....iter1,iter2,iter3=iter_dir(path1),iter_dir(path2),iter_excel(excelfile)
....while True:
........item = [next(iter1),next(iter2),next(iter3)]
........ifitem[0] anditem[1] anditem[2]:
............yielditem
........else:
............raiseStopIteration
#然后就可以用myiter去做循环了:
for file1,file2,xls inmyiter('d:/source','d:/dest','d:/aa.xls'):
....想做了点什么就去做吧
B. Python3 生成一个随即列表
Python 生成一个随即列表
-1.最原始的方法--循环
import random #随机数的库
l = [] # 先定义一个空列表
for i in range(1,100):
x = random.randint(1,100) # 选取数字的范围是1--100 ,且为int
l.append(x)
print(l)
-2.
l = [random.randint(0,100000) for i in range(1000)] #
print(l)
3.
l = [random.randrange(1000) for i in range(1000)]
print(l)
4.
#生成不可重复的随机数。
l = random.sample([i for i in range(10000)],100)
print(l)
C. python,关于for循环,列表的问题
列表在循环的时候如果执行了删除操作. 索引和长度会有变化. 这种删除是不安全.
先把要删除的内容放在一个新列表中. 然后循环这个新列表. 删除老列表.
dict在循环过程中是不允许删除的.
把要删除的键放在列表中. 循环列表删除字典
D. python语法问题:关于在list中使用for循环
Python 的强大特性之一是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个元素应用一个函数,从而将一个 list 映射为另一个 list。
例 3.24. List 解析介绍
>>> li = [1, 9, 8, 4]
>>> [elem*2 for elem in li]
[2, 18, 16, 8]
>>> li
[1, 9, 8, 4]
>>> li = [elem*2 for elem in li]
>>> li
[2, 18, 16, 8]
为了便于理解它,让我们从右向左看。li 是一个将要映射的 list。Python 循环遍历 li 中的每个元素。对每个元素均执行如下操作:首先临时将其值赋给变量 elem,然后 Python 应用函数 elem*2 进行计算,最后将计算结果追加到要返回的 list 中。
需要注意是,对 list 的解析并不改变原始的 list。
将一个 list 的解析结果赋值给对其映射的变量是安全的。不用担心存在竞争情况或任何古怪事情的发生。Python 会在内存中创建新的 list,当对 list 的解析完成时,Python 将结果赋给变量。
From <dive into python>
E. Python3脚本传参实战(2个方法3个传参列表的案例)
在一些测试平台对接时或者用例执行时,或多或少会用到Python脚本传参的问题。
test.py脚本
#!/usr/bin/python3
import sys
print ('参数个数为:', len(sys.argv), '个参数。')
print ('参数列表:', str(sys.argv))
print ('脚本名:', str(sys.argv[0]))
print ('第一个参数:', sys.argv[1])
执行python3 test.py arg1 arg2 arg3
参数个数为: 4 个参数。
参数列表: ['test.py', 'arg1', 'arg2', 'arg3']
脚本名: test.py
第一个参数: arg1
test.py脚本
#!/usr/bin/python3
import argparse
# 生成了一个命令行参数的对象
parser = argparse.ArgumentParser(description='Test for argparse')
parser.add_argument('--name', '-n', help='name属性,非必要参数')
parser.add_argument('--year', '-y', help='year 属性,非必要参数,但有默认值', default=2017)
parser.add_argument('--body', '-b', help='body属性,必要参数', required=True)
args = parser.parse_args()
print (args.year, args.name, args.body)
查看帮助python3 test.py --help
usage: test.py [-h] [--name NAME] [--year YEAR] --body BODY
Test for argparse
optional arguments:
-h, --help show this help message and exit
--name或-n NAME name属性,非必要参数
--year或-y YEAR year属性,非必要参数,但有默认值
--body或-b BODY body 属性,必要参数
执行python3 test.py --year 2021 -n robot --body "are you ok?"
2021 robot are you ok?
以方法2中的test.py脚本为例
python3 test.py --year 2021 --body [\"test\", \"robot\",\"boy\" ]
2021 ["test", "robot", "boy" ]
以方法1中的test.py脚本为例
python3 test.py [\"test\", \"robot\",\"boy\" ]
参数个数为: 2个参数。
参数列表: ['test.py', '[\"test\", \"robot\", \"boy\" ]']
脚本名: test.py
第一个参数: ["test", "robot", "boy" ]
其实此时传入的第一个参数是一个字符,需要转换为列表。
import json
json.loads(sys.argv[1])
test_arg.py脚本
#!/usr/bin/python3
import argparse
import os
# 生成了一个命令行参数的对象
parser = argparse.ArgumentParser(description='Test for argparse')
parser.add_argument('--body', '-b', help='body属性,必要参数', required=True)
args = parser.parse_args()
print (args.body)
command=python3 + ' ' + test_sys.py+ ' ' + args.body
print (command)
str=('command')
result=os.system(str)
test_sys.py脚本
#!/usr/bin/python3
import sys
import json
print ('第一个参数:', sys.argv[1])
print ('列表:', json.loads(sys.argv[1]))
执行python3 test_arg.py --body [\"test\", \"robot\",\"boy\" ]
python3 test_sys.py ["test", "robot", "boy" ]
test_sys.py执行报错,转json失败。
还记得我们案例2中,脚本的传入指定参数和实际传入参数嘛?
test_arg.py脚本我们稍微优化下,在传参前先字符替换下。
["test", "robot", "boy" ]转换为[\"test\", \"robot\",\"boy\" ]即可。
command.replace(' " ' , r ' \" ') 添加到command=之后,再次运行看看呢?
F. python如何使用for循环对列表内元素进行求和
Python3的话是下面这样:
a = [1,2,3,4,5] #定义一个列表
sum = 0 #定义一个初始的数
for i in a:
sum += i# 意思就是加上a的每一个数
print(i)
input()
G. python中,如何在每一次for循环时都建一个新的列表
这样:
list=[]
>>>foriinrange(5):
...list.append([i])
...
>>>list
[[0],[1],[2],[3],[4]]
>>>list[0]
[0]
>>>list[1]
[1]
(7)python3列表for扩展阅读:
注意事项
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法:
for循环的语法格式如下:
for iterating_var in sequence:
statements(s)
例如:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
for letter in 'Python': # 第一个实例
print '当前字母 :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二个实例
print '当前水果 :', fruit
print "Good bye!"
H. python怎么用for循环把列表的值一个一个拿出来不换行输
python用for循环团伏梁把列表的值一个一个拿出来不换行输:
1、python输出时不换行,python版本不同使用方式不同:python2.x使用塌运print'输出内容',加一个空格即可。python3.x版本使用print('输出内容',end='')这种方式。
2、代码示例:python2.xprint'不换行',print'换行厅枝'python3.xprint('不换行',end='')print('换行')执行结果:python2.x不换行换行python3.x不换行。
3、函数说明:python2.xprint一个'
'字符结尾写的,除非'print'声明以逗号结束。这是如果该语句的唯一操作只包含关键字'print'。python3.xprint(...)print(value,...,sep='',end='
',file=sys.stdout,flush=False)end:字符串的最后一个值后追加,默认为新行。