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:字元串的最後一個值後追加,默認為新行。