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 用指定内容替换指定内容,可以指定次数 ...
随机推荐
- Ros指令集
rospack = ros+pack(age) : provides information related to ROS packages rosstack = ros+stack : provid ...
- SpringBoot04 日志框架之Logback
1 日志框架选择 日志门面:SLF4J 日志实现:Logback 2 实现控制台的日志打印输出01 2.1 在需要实现日志信息打印的类中实例化Logger对象 坑01:springBoot项目默认使用 ...
- Selenium二次封装-Python版本
from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from seleni ...
- 用StringBuilder来实现经典的反转问题
import java.util.Scanner; public class Practise03 { public static void main(String[] args) { //键盘录入一 ...
- xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at:
今天更新了一下mac系统,然后发现 idea的svn插件不能用了,有的报 有的报 is not under version 经查找需要做如下处理,打开终端,安装xcode: xcode-selec ...
- Luogu 3466 [POI2008]KLO-Building blocks
BZOJ 1112. 题意相当于在一个长度为$k$的区间内选择一个数$s$使$\sum_{i = 1}^{k}\left | a_i - s \right |$最小. 很显然是中位数. 然后只要写一个 ...
- Luogu 3934 Nephren Ruq Insania
和Ynoi2016 炸脖龙重题了. BZOJ 5394. 首先是扩展欧拉定理: 一开始傻掉了……递归的层数和区间长度无关……也就是说我们每一次直接暴力递归求解子问题一定不会超过$logP$层,因为当模 ...
- vue 之 箭头函数与对象的单体模式
箭头函数 基本语法: ES6允许使用“箭头”(=>)定义函数 var f = a = > a //等同于 var f = function(a){ return a; } 如果箭头函数不需 ...
- 日常学习随笔-自定义了一个MyArrayListDefin集合(数组扩容+迭代器+JDK1.8新方法+详细说明)
一.自定义了一个ArrayList的模拟集合(源码+详细说明) 前段时间分析了下ArrayList集合的源码,总觉得如果不自己定义一个的话,好像缺了点什么,所以有了如下的代码. 代码可以说是逐行注释了 ...
- 关于eclipse导入maven项目
1:删除其他的配置文件,只需要源码 和 pom文件 2:导入项目,再修改几个地方: 2.1: 所选项目右键- properties - Project Facet,勾上 Dynamic Web Mod ...