详解python 拆包可迭代数据如tuple, list

本文实例讲述了python通过apply使用元祖和列表调用函数的方法。分享给大家供大家参考。具体实现方法如下:

python的dict,set,list,tuple应用详解,dicttuple

本文深入剖析了python中dict,set,list,tuple应用及对应示例,有助于读者对其概念及原理的掌握。具体如下:

1.字典(dict)

dict 用 {} 包围
dict.keys(),dict.values(),dict.items()
hash(obj)返回obj的哈希值,如果返回表示可以作为dict的key
del 或 dict.pop可以删除一个item,clear清除所有的内容
sorted(dict)可以把dict排序
dict.get()可以查找没存在的key,dict.[]不可以
dict.setdefault() 检查字典中是否含有某键。
如果字典中这个键存在,你可以取到它的值。
如果所找的键在字典中不存在,你可以给这个键赋默认值并返回此值。
{}.fromkeys()创建一个dict,例如:

{}.fromkeys(('love', 'honor'), True) =>{'love': True, 'honor': True} 

不允许一个键对应多个值
键值必须是哈希的,用hash()测试
一个对象,如果实现_hash()_方法可以作为键值使用

2.集合(set)

集合是一个数学概念,用set()创建

set.add(),set.update.set.remove,添加更新删除,-= 可以做set减法
set.discard 和
set.remove不同在于如果删除的元素不在集合内,discard不报错,remove 报错
< <= 表示 子集,> >=表示超集
| 表示联合 & 表示交集 – 表示差集 ^ 差分集

3.列表(list)

列表是序列对象,可包含任意的Python数据信息,如字符串、数字、列表、元组等。列表的数据是可变的,我们可通过对象方法对列表中的数据进行增加、修改、删除等操作。可以通过list(seq)函数把一个序列类型转换成一个列表。

append(x) 在列表尾部追加单个对象x。使用多个参数会引起异常。
count(x) 返回对象x在列表中出现的次数。
extend(L) 将列表L中的表项添加到列表中。返回None。
Index(x)
返回列表中匹配对象x的第一个列表项的索引。无匹配元素时产生异常。
insert(i,x)
在索引为i的元素前插入对象x。如list.insert(0,x)在第一项前插入对象。返回None。
pop(x)
删除列表中索引为x的表项,并返回该表项的值。若未指定索引,pop返回列表最后一项。
remove(x)
删除列表中匹配对象x的第一个元素。匹配元素时产生异常。返回None。
reverse() 颠倒列表元素的顺序。
sort() 对列表排序,返回none。bisect模块可用于排序列表项的添加和删除。

4.元组(tuple)

tuple=(1,),这是单个元素的元组表示,需加额外的逗号。
tuple=1,2,3,4,这也可以是一个元组,在不使用圆括号而不会导致混淆时,Python允许不使用圆括号的元组。
和列表一样,可对元组进行索引、分片、连接和重复。也可用len()求元组长度。 
元组的索引用tuple[i]的形式,而不是tuple(i)。
和列表类似,使用tuple(seq)可把其它序列类型转换成元组。

拆包是指将一个结构中的数据拆分为多个单独变量中。

def my_fuc(a, b):
  print a, b
atuple=(30,10)
alist= ['Hello','World!']
apply(my_fuc,atuple)
apply(my_fuc,alist)

python 概念 list,string,tuple 类型不同 以及 数据类型不同

标准答案我是不知道,但是string的元素只能是字符;而list,
tuple中的元素几乎可以为任意类型(包括list, tuple, dict等)。
 

以元组为例:

运行结果如下:

Python 中的列表 List 是可以改变的, 元组 Tuple 是不可以改变的, 那什情况下要用到 tuple ?

Tuple 是不可变 list。 一旦创建了一个 tuple 就不能以任何方式改变它。

Tuple 与 list 的相同之处

定义 tuple 与定义 list 的方式相同,
除了整个元素集是用小括号包围的而不是方括号。
Tuple 的元素与 list 一样按定义的次序进行排序。 Tuples 的索引与 list
一样从 0 开始, 所以一个非空 tuple 的第一个元素总是 t[0]。
负数索引与 list 一样从 tuple 的尾部开始计数。
与 list 一样分片 (slice) 也可以使用。注意当分割一个 list 时,
会得到一个新的 list ;当分割一个 tuple 时, 会得到一个新的 tuple。

Tuple 不存在的方法

您不能向 tuple 增加元素。Tuple 没有 append 或 extend 方法。
您不能从 tuple 删除元素。Tuple 没有 remove 或 pop 方法。
您不能在 tuple 中查找元素。Tuple 没有 index 方法。
然而, 您可以使用 in 来查看一个元素是否存在于 tuple 中。

用 Tuple 的好处

Tuple 比 list
操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用
tuple 代替 list。
如果对不需要修改的数据进行 “写保护”,可以使代码更安全。使用 tuple 而不是
list 如同拥有一个隐含的 assert
语句,说明这一数据是常量。如果必须要改变这些值,则需要执行 tuple 到 list
的转换。

Tuple 与 list 的转换
Tuple 可以转换成 list,反之亦然。内置的 tuple 函数接收一个
list,并返回一个有着相同元素的 tuple。而 list 函数接收一个 tuple
返回一个 list。从效果上看,tuple 冻结一个 list,而 list 解冻一个
tuple。

Tuple 的其他应用
一次赋多值
>>> v = (‘a’, ‘b’, ‘e’)
>>> (x, y, z) = v
解释:v 是一个三元素的 tuple, 并且 (x, y, z) 是一个三变量的
tuple。将一个 tuple 赋值给另一个 tuple, 会按顺序将 v
的每个值赋值给每个变量。澳门金沙vip,
 

本文深入剖析了python中dict,set,list,tuple应用及对应示例,有助于读者对其概念及原理的掌握。具体如…

>>> a = ('windows', 10, 25.1, (2017, 12, 29))
30 10
Hello World!

假设数据的意思是购买windows 10 份,
每份价值25.1刀。数据获取时间是2017年12月29日。

希望本文所述对大家的Python程序设计有所帮助。

我们需要获取该数据中每份的价格:

您可能感兴趣的文章:

  • Python 元组(Tuple)操作详解
  • python的dict,set,list,tuple应用详解
  • Python序列之list和tuple常用方法以及注意事项
  • Python中的tuple元组详细介绍
  • Python中的defaultdict模块和namedtuple模块的简单入门指南
  • 详解Python中列表和元祖的使用方法
  • python实现将元祖转换成数组的方法
  • Python中内置数据类型list,tuple,dict,set的区别和用法
  • Python数据类型详解(三)元祖:tuple
>>> a[2]

也可以使用拆包的方法: