args 、kwargs不定参数通过列表、元组、字典传递
*args 、**kwargs是不定参数的表达方法,一般用于函数形参。*args 、**kwargs 作为传递参数的函数,在使用过程中,可对*args 、**kwargs多个输入,但是效率或者比较麻烦,所以可使用list、tuple、dict类型的变量传递给args,kwargs,再由*args 、**kwargs作为函数参数直接传递给函数。
*args 可以用来容纳多个变量组成的list或tuple
**kwargs 可以用来容纳多个key和value的dict
那具体怎么直接将*args 、**kwargs通过list、tuple或dict传递了,来看实例:
#变量及函数定义:
dict_t = {'one':1,'two':2,'three':3}
tuple_t = ('one','two','three')
list_t = ['one','two','three']
def list_tuple(*args):
print(args)
def tdict(**kwagrs):
print(kwagrs)
#使用方法:
list_tuple (*tuple_t) #tuple类型的变量传递给args
list_tuple (*list_t) #list类型的变量传递给args
tdict (**dict_t) # dict类型的变量传递给kwargs
执行结果:
('one', 'two', 'three')
('one', 'two', 'three')
{'one': 1, 'two': 2, 'three': 3}
也可以使用eval的方式,eval具体介绍可在内置函数介绍中查看:https://www.cnblogs.com/pinpin/p/10287534.html
dict_t = {'one':1,'two':2,'three':3}
tuple_t = ('one','two','three')
list_t = ['one','two','three']
def list_tuple(*args):
args = eval('args')
print(args)
list_tuple (list_t)
list_tuple (list_t)
list_tuple(dict_t)
执行结果:
(['one', 'two', 'three'],)
(['one', 'two', 'three'],)
({'one': 1, 'two': 2, 'three': 3},)
使用eval的区别在于:将*args 、**kwargs当成一个字符串进行转递,当然,使用时读取数据就多一步:
list_t = ['one','two','three']
def list_tuple(*args):
args = eval('args')
return args tets = list_tuple (list_t)
for i in range(len(tets[0])): #tets[0]第一个元素的长度,原因,eval将数据当成字符传传递
print(tets[0][i])
执行结果:
one
two
three
args 、kwargs不定参数通过列表、元组、字典传递的更多相关文章
- Python第三天 序列 数据类型 数值 字符串 列表 元组 字典
Python第三天 序列 数据类型 数值 字符串 列表 元组 字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...
- Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式
Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell ...
- **python中列表 元组 字典 集合
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...
- 2.9高级变量类型操作(列表 * 元组 * 字典 * 字符串)_内置函数_切片_运算符_for循环
高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
- python_列表——元组——字典——集合
列表——元组——字典——集合: 列表: # 一:基本使用# 1.用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制# l=['a','b','c'] #l=list([' ...
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- Python之列表&元组&字典
今天学习了Python的基本数据类型,做以下笔记,以备查用. 一.列表 列表的常用方法: 1.append()方法 def append(self, p_object): # real signatu ...
- python字符串 列表 元组 字典相关操作函数总结
1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 ...
随机推荐
- Arduino Serial库的使用
1 Serial.begin() 2 Serial.end() 3 Serial.available() 4 Serial.read() 5 Serial.peek() 6 Serial.flush( ...
- ZROI #88
传送门 分析 我们考虑把每个A[i]考虑为山峰的高度,每次的B考虑为海平面 于是我们知道对于A[i]和A[i-1],如果A[i-1]<A[i]则在A[i-1]<B<=A[i]时会使陆 ...
- 形式化验证工具(PAT)2PC协议学习
今天我们来看看2PC协议,不知道大家对2PC协议是不是了解,我们先简单介绍一下. 两阶段提交协议(two phase commit protocol, 2PC)可以保证数据的强一致性,许多分布式关系型 ...
- javaSE阶段中 关于Sring类方法的应用
String类中有很多常用的方法,今天就一些方法涉及到的一些常见题 做两个小Demo 其中一个要求如下: 获取指定字符串中,大写字母.小写字母.数字 的个数 题目分析 * 为了统计大写字母.小写字 ...
- AR# 30522:LogiCORE RapidIO - How do system_reset and link_reset work?
Description How do system_reset and link_rest work? Solution lnk_linkreset_n (input): In Xilinx SRIO ...
- Java50道经典习题-程序35 最大最小交换
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组.分析: 例如输入6 4 8 3 9 7 交换后输出9 4 8 7 6 3 import java.util.Arrays; ...
- windows下部署icescrum
软件151 卢炜杰 一.安装JDK 1.下载JDK 地址:http://www.oracle.com/technetwork/java/javaee/downloads/index.html 选择相 ...
- Vue 组件 生命周期函数mounted
生命周期函数mounted:页面刷新触发mounted(){ console.log('我在页面刷新时触发');} Tips:使用export default function Add(){},与ex ...
- fabric java chaincode 开发
链码的开发不部分参考官网demo即可. 本文不会详细介绍开发过程 笔者启动的是一个gradle工程,也就是jar包管理使用的是gradle. chaincode 源码: /* Copyright IB ...
- P4338 [ZJOI2018]历史 LCT+树形DP
\(\color{#0066ff}{ 题目描述 }\) 这个世界有 n 个城市,这 n 个城市被恰好 \(n-1\) 条双向道路联通,即任意两个城市都可以 互相到达.同时城市 1 坐落在世界的中心,占 ...