python list, tuple dict,set的区别 以及**kwargs 的基本用法

在python中, list, tuple, dict, set有什么区别, 主要应用在什么样的场景?

定义:

list:链表,有序的项目, 通过索引进行查找,使用方括号”[]”;

tuple:元组,元组将多样的对象集合到一起,不能修改,通过索引进行查找, 使用括号”()”;

dict:字典,字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序, 使用大括号”{}”;

set:集合,无序,元素只出现一次, 自动去重,使用”set([])”

应用场景:

list, 简单的数据集合,可以使用索引;

tuple, 把一些数据当做一个整体去使用,不能修改;

dict,使用键值和值进行关联的数据;

set,数据只出现一次,只关心数据是否出现, 不关心其位置;

注意:

元组能存储多个不同类型的数据,且是有序的。但它是不可变的,因此不能进行修改、删除或添加元素的操作。

列表和元组非常相似,唯一的不同是列表的元素是可以修改的。

字典的元素以键值对(key-value)的形式保存,是无序的。

和列表一样,字典可以修改。

定义方式:

定义元组、列表和字典的方式如图所示,分别使用小括号 () 、方括号 [] 和花括号 {} 。

三种数据结构的每一项元素都是由逗号分隔开。

访问多个元素

对于元组和列表来说,除了访问单个元素外,还可以使用切片来截取多个连续的元素。

切片需要使用冒号来分隔切片开始的位置和切片终止的位置。

同时,遵循“左闭右开”原则,就是取左边的数据,不取右边的数据。
 

切片时,开始位置和结束位置的数字,还有三种填写情况。

1. 只填写结束位置的数字:默认从第一个元素开始切片。

2. 只填写开始位置的数字:默认从开始位置切片,取到最后一个元素。

3. 两侧数字都不填写:取列表中的所有元素。

修改元素

对列表和字典进行修改,可以使用列表的索引或字典的键,访问到需要修改的元素后,直接重新赋值即可。

numbers = ["one",  "two",  "two" , "four",  "five"]
numbers[2] = "three"
print(numbers)

列表里添加元素

往列表里添加内容有两种方式:

1. 如果想在列表的末尾增加一个元素,可以使用 append() 语句,将想要追加的内容放入append() 语句的括号内即可。

2. 如果想在列表的任意位置添加元素,则可以使用 insert() 语句,需要依次传入:插入的元素位置和要插入的元素。

字典里添加元素

对于字典,添加新元素的方式是直接指定一个新的键,然后对它进行赋值。

删除元素

从列表中删除一个元素时,我们使用pop()功能,通过这个元素的索引,来进行删除。

在字典中,依旧使用pop()功能,通过这个元素的键,来进行删除。

in运算符

想要快速判断列表或者元组中是否有某一个元素,可以使用in运算符。

in运算符的左边是要查找的元素,右边是定义的元组或列表。

in运算的结果,是一个布尔值(True/False)。

同样,当我们不知道字典有哪些键的时候,也可以通过in运算来检查字典是否包含某个键。

加法

列表和元组支持加法运算,加法的和就是两个列表或元组所包含的元素首尾相接。需要注意的是,列表只能和列表相加;元组只能和元组相加;

a_tuple = ('Python' , 20, -10.2)
print(a_tuple)
print("\n")
b_tuple = (127, 'Java', 'Test', True)
print(b_tuple)
print("\n")
print(a_tuple + b_tuple  )

其结果如下:

 乘法

列表和元组可以和整数执行乘法运算,列表和元组乘法的作用就是把列表或元组中的元素重复N次,并且首尾相接。

下面的代码演示了列表和元组的乘法。

a_tuple = ('Python编程思想' , 20)
# 执行乘法
mul_tuple = a_tuple * 3
# ('Python编程思想', 20, 'Python编程思想', 20, 'Python编程思想', 20)
print("\n")
print(mul_tuple)
a_list = [12, '公众号:极客起源', 4]
mul_list = a_list * 4
# [12, '公众号:极客起源', 4, 12, '公众号:极客起源', 4]
print("\n")
print(mul_list)

in 运算符

in运算符用于判断列表或元组是否包含某个元素,例子代码如下:

a_tuple = ('Python' , 20, -11.5)
print(20 in a_tuple) 
# True
print(1.2 in a_tuple) 
# False
print('Python' not in a_tuple) 
# False

**kwargs 的基本用法

**kwargs 解析的三种方法:

通过是用内置函数 vars()。

通过使用**运算符。

通过使用get()方法。

**kwargs 主要用于在函数定义中收集所有未被显式命名的关键字参数。在函数内部,kwargs 是一个字典,其中包含了所有传递进来的关键字参数及其对应的值。

示例:
 

def my_function(**kwargs):  
    for key, value in kwargs.items():  
        print(f"{key} = {value}")  
  
# 调用函数,传递不同的关键字参数  
my_function(name="Alice", age=30, city="New York")

在 Python 中使用 kwargs

如果您有一个接受两个关键字参数的函数,您可以像这样访问它们:

def my_func(**kwargs) :
    arg1=kwargs['arg1']
    arg2=kwargs['arg2']

您还可以使用 kwargs 为函数参数设置默认值。 例如,如果你有一个带有可选关键字参数的函数,你可以像这样设置一个默认值:

def my_func(**kwargs):
    arg1 = kwargs.get('arg1','default_value')

如果 arg1 关键字参数未传递给函数,则此函数会将 arg1 设置为 default_value。

kwargs Python中**运算符解析

解析 kwargs 的另一种方法是使用 ** 运算符。 此运算符将字典解压缩为关键字参数

此方法比使用 vars() 更明确,可以帮助避免潜在的类型转换错误。

def intro(**data):
    for key ,value in data.items():
        print("{} is {}".format(key,value))
intro(firname = "aaaa", last="bbbbb", age=12)
print("\n")
intro(firname = "aaaa", last="bbbbb",email="1073369052@qq.com" ,con="china",age=12,phone=13)

kwargs 在 Python 中使用 get() 方法进行解析

def test(farg,**kwargs):
    print("formal arg",farg)
    for key in kwargs:
        print("keyword arg: %s: %s " % (key,kwargs[key]))
test(farg=1,myarg2=2,myarg3=3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值