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 用指定内容替换指定内容,可以指定次数 ...
随机推荐
- return()函数
在函数中,执行完return()函数后,下面的语句就不会再执行了.例子: <?php function fn() { echo "you are awsome"; retur ...
- CPU时钟是个什么东西
CPU时钟说的是频率生成器,可能生成的是方波也可能是其它波. 频率生成器那是什么东西?这教要讲到压电效应了. 压电效应这个词是一个统称,它包括正压电效应和逆压电效应. 传说在很久以前有一个科学家发现了 ...
- Linux下遇到的操作 (持续更新……)
1.作业让写一个输入输出重定向,管道联接.这里要讲的不是这个而是 我当时想写个程序来演示这些功能:但我发现我的虚拟机中没有装GNU不能用g++命令,然后就惊奇的发现Linux命令行可以直接联网下载安装 ...
- PLSQL连接Oracle11g 64位
目前plsql只有32位的,而Oracle11则是64位的,想要连接需要下载这个: 打开plsql,在Tools-->Prefences里面设置,如下图: 设置Oracle的主目录:下载文件解压 ...
- 【京东助手】滑稽东试用助手 V1.6.0
很久没写博客了,发个最近在做的一个软件! 滑稽东试用助手现有功能1.自动申请试用2.自动领取京豆3.自动签到领取京豆说明:该软件使用C#开发,若要运行此应用程序,您必须首先安装 .NET4.01.双击 ...
- 程序自动化需要一个Windows服务
前段时间,写了一个SPC to SQL数据传输的小功能,用户不太想用手执行或有可能忘记操作.解决这个问题,Insus.NET原本是使用windows的任务管理执行的,但觉得并不太理想,因此又得写一个W ...
- iOS Programming GitHub
我把学习<iOS编程(第4版)>的相关代码放在了GitHub上: https://github.com/palanceli/iOSProgramming 学了一段时间之后,当要用到某个知识 ...
- utf-8-BOM删除bom
utf-8 bom,去除bom //开始 function file_bom($wenjian,$remove = true) { //读取文件,将文件写入字符串 $contents = fi ...
- oracle数据库性能
性能视图V$开头 V$SYSTEM_EVENT 正在等待的资源的系统信息 V$SESSION_EVENT 会话累计发生的等待事件 V$SESSION_WAIT 会话正在等待或者曾经等待的详细时间信息 ...
- 前端性能优化-gzip
为什么要开启GZIP 我们需要下载一个100KB的Javascript文件,正常的下载量就是100KB,如果我们把文件在服务端压缩一下,压缩成30kb,下载到客户端再进行解压,这样就减少了大量的HTT ...