从零开始,Python学习笔记(一)列表、元组、字典、集合

博主之前学过一点的python,但缺少实际操作,记忆并不牢固。
最近在MOOC又过了一遍python的基础知识,决心从零开始,为将来的数据分析和机器学习打牢基础。
先从最基础的数据类型开始,主要是各种数据类型元素的限制和函数的使用规则,细节可能无用,也可能有用。

列表 list

属性列表 list        示例: list = [1,2,3,4,5]   list[1] = 2
元素从数值、字符串到 list、tuple等等均可
是否可变
增加元素list.append(obj)     在末尾添加元素
list.extend(seq)      在结尾用序列添加多个元素
list.insert(index , obj)  在指定位置添加元素
删除元素list.pop(index)       删除指定位置的元素,并且返回该元素的值   index默认为-1
list.remove(obj)     移除列表中某个值的第一个匹配项
list.clear()         清空列表
del list[index]       删除指定位置的元素
排序list.reverse()       将list中的所有元素前后颠倒
list.sort()          对列表进行排序
索引list[int]          int可正可负,但不可以越界
list.index(obj)      返回某个值的索引值,即它在list中的位置
切片list[a:b]         截取从位置a开始到位置b之前的元素(不包含位置b)
            [a,b) 左闭右开 

注意:list中的元素从位置0开始,从左往右; 也可以从-1开始,即从右往左
    a或b可以不填,意味着从左端或右端到某一个位置
其他函数len(list)         返回 list 的长度
max(list) or min(list)   返回list的最大值或最小值
list(tup)         用元组生成新的 list(返回值为 list,并不会改变原有的元组)
cmp(list1,list2)      用来比较两个列表的大小,但在python3.X版本中已经删除
             推荐直接使用 list1>list2,这样的判断符。 要注意数值类型

补充一点,sorted(list)不改变list本体,而是返回排序后的 list,可以将返回值赋给一个新的变量进行使用.
而reversed(list)不返回任何值

元组 tuple

示例     tuple = (1,2,3,‘abc’)
为了方便理解元组,我们先将元组视为把[ ]换为()的列表,两者可以执行的操作完全一样。
元组相比于列表,除了[ ]变为( )以外,最大的不同在于元组的不可变性。
即元组在初始化之后,不能对其中的元素进行更改。也就是说少了删除元素、排序的功能,具体表现为:

  • 不能通过索引改变元组中的数值。
    例如:a=(1,2,3) 执行赋值语句 a[2]=10 就会报错

准确理解不可变性,还需注意如下情况:

  • 当元组中的元素为 列表list 的时候,列表的值改变,会导致元组本身的改变。
    如下图所示,随着list t的改变,x也发生了改变
    在这里插入图片描述
    如何理解这种情况?
    tuple不变指的是它的指向该list的位置不变,至于list变成何值,如何变动都与它无关

  • 元组仍然可以通过 + 和 * 进行扩展

字典 dict

属性字典 dict     示例:dict = { ‘name’ : “张三” , ‘age’ : 18}
元素键 key     必须是不可变类型,即数值、字符串、元组。键一般是唯一的,如果重复最后的一个键值会替换前面的
值 value    任何数据类型
查看key,valuedict.keys()    所有的键
dict.value()   所有的值
dict.items()   以元组(键,值)的形式返回所有内容
访问dict [key]    返回键所对应的值。如果没有该键,则报错
dict.get(key)  同上,不存在则返回default值
dict[key]=value  键若不存在,则自动生成新的键,值为value;否则,替换原值
修改dict.fromkeys((keys),value)  生成包含了一或多个键且对应值均为value的字典(覆盖原内容),如果value不填则默认为None
dict.update(dict2)       在字典dict中加入字典dict2的内容.
dict.update(key=value)    在字典中加入键为key,值为value。 注意key不需要加引号
删除del dict[key]   删除该键所在数据项
dict.pop()    删除并返回值
dict.popitem()   删除并返回字典中最后一对键和值
dict.clear()     清空
其他函数dict.has_key(key)  查找是否有这个键

集合

set就像是把dict中的key抽出来了一样,类似于一个List,但是内容又不能重复,
set中不能加入可变类型数据(不能加入含有list的元组)

属性集合set  示例: set = {‘a’,‘b’,‘c’}
元素非可变类型数据数值、字符串、元组
创建set()方法a=set()     创建空集合
a=set(list)     从序列转换生成集合
增长集合set.add(item)
set.update(list)
增加一个数据
批量增加数据
删除set.remove/discard()
set.pop()
set.clear()
删除指定数据,在没有该数据的时候remove会报错,discard不会
删除任意数据并返回值
清空
集合运算并 a | b
交 a & b
差 a - b
对称差 a ^ b
对称差:a | b – a & b
关系判定<,<=,=,>,>=子集、真子集、超集、真超集

集合可以用来:
快速去除重复的项。
判断元素是否在一组数据中,如果顺序不重要,使用集合可以获得比列表更好的性能


小结

一些相通点:

  • list,tuple,dict,set 均可由 in 用于逻辑判断、循环语句
  • 都有clear,pop,remove删除方式,且逻辑类似

参考资料
[1]: [Python 菜鸟教程](https://www.runoob.com/python/python-tuples.html)
第一次写博客,第一次接触Markdown,用起来有些吃力,有些地方排版也不是很好,我相信未来会更好
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python编程语言中,有四种常用的集合数据类型,它们分别是列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。列表是一种有序和可更改的集合,允许重复的成员。元组是一种有序且不可更改的集合,也允许重复的成员。字典是一个无序、可变且有索引集合,其中没有重复的成员。而集合是一种无序和无索引集合,没有重复的成员。这四种集合数据类型在Python中都有着不同的特点和用途。 在Python中,列表元组和字符串都属于序列,它们的元素都可以通过编号进行访问。而字典则属于映射,其中的元素是以键值对的形式存在的。集合则不属于序列或映射中的任何一种,它是一种独立的数据类型,用于存储一组不重复的元素。 总结起来,Python中的列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)都是常用的集合数据类型,它们各自有着不同的特点和用途。列表是有序和可更改的集合元组是有序且不可更改的集合字典是无序、可变且有索引集合集合是无序和无索引集合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [浅谈python四种集合数据类型—【列表元组集合字典】](https://blog.csdn.net/QWERTYzxw/article/details/121479048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python 元组集合字典](https://download.csdn.net/download/weixin_38603219/13752298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值