个人 Python学习记录(二)

本文介绍了Python的五大容器数据类型:列表、元组、字典、集合和字符串。列表是可变的,支持append、extend、insert和remove等操作;元组不可变,适用于数据结构的固定;字符串是不可变序列,支持格式化输出。字典是键值对的集合,提供了多种内置方法如get和pop。集合是唯一元素的无序集合,常用于去重。这些基础知识对于理解和使用Python至关重要。
摘要由CSDN通过智能技术生成

续: python学习记录(一)

上篇学习python的基本数据类型,这篇学习python的容器数据类型,容器数据类型分为5种

容器数据类型
- 列表`<class 'list'>`
- 元组`<class 'tuple'>`
- 字典`<class 'dict'>`
- 集合`<class 'set'>`
- 字符串`<class 'str'>`

一、 列表

定义: [a,b,c]  中括号括起来,用,隔开
特点: 由于list的元素可以是任何对象,不是同一种类型,因此列表中所保存的是对象的指针。即指向对象地址的指针,即使保存一个简单的`[1,2,3]`,也有3个指针和3个整数对象.通过指针便可定位到对象

操作:

  1. 追加
    1. append()方法: list.append('a') 在末尾添加元素,只能一个一个的添加元素,可以是任意数据类型,并且存进入保持原类型
    2. extend()方法:  list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
  2.  插入
    1. list.insert(index,obj) 在编号index 位置插入obj
  3. 删除
    1. list.remove(obj) 移除列表中某个值的第一个匹配项  (需要一一比对,直到对应上,但是后续的不会去匹配,应该需要用到for循环,可能会出现越界问题?)
    2. list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值  可以指定index
    3. del x[0:2] 删除0到2的元素,del可以删除指定的一个对象或者多个对象
    4. remove和pop的区别,一个是删除元素一个删除指定索引的值
  4. 查询
    1. x[index] 获取指定index的元素,index从0开始,想获取最后一个index=-1 倒数第二个 index=-2 这个样子
    2. 特殊写法 切片: 通用写法是 start : stop : step  注意 ":" 
  • 情况 1 - "start :"
  • 以 step 为 1 (默认) 从编号 start 往列表尾部切片    x[1:] => 从1开始向尾部切片 一次1个
  • 情况 2 - ": stop"
  • 以 step 为 1 (默认) 从列表头部往编号 stop 切片      x[:1] => 从1开始像头部切片 一次1个
  • 情况 3 - "start : stop"
  • 以 step 为 1 (默认) 从编号 start 往编号 stop 切片  x[1:2] => 从1开始往2切片  一次1个
  • 情况 4 - "start : stop : step"
  • 以具体的 step 从编号 start 往编号 stop 切片。注意最后把 step 设为 -1,相当于将列表反向排列
  • 情况 5 - " : "
  • 复制列表中的所有元素(浅拷贝)

如:

x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(x, type(x))
# ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'] <class 'list'>

x = [2, 3, 4, 5, 6, 7]
print(x, type(x))
# [2, 3, 4, 5, 6, 7] <class 'list'>

列表常用操作符: 

  • 等号操作符:==   判断是否同一个列表
  • 连接操作符 +     相当于extend()方法
  • 重复操作符 *     重复操作符,*n 重复n次
  • 成员关系操作符 innot in  判断是否属于

二、元组

需要注意的是:

  1.  元组可以使用()来创建,也可以不使用,但是为了规范性,还是使用()为好
  2. 当元组只有一个元素时候,必须加上, 否则会被当成运算符处理
  3. 元组有一维和二维,用下标来表示,也就是索引
  4. 对于元组,操作是不可更改的,但是当其内部含有指向时,指向的元素可以被更改

内置方法:

因为不可更改所以内置方法有两个

  1. count() 统计元素出现的次数
  2. index() 返回指定元素出现的索引只

解压操作:

    定义: 用指定的值去接收对应数量的元组,其中对于不想具体接收,或者根本不需要的可以分别使用 *变量  或者 *_去替代

    如:

        

t=1,2,3,4,5;
a,b,*rest = t 
# 此时, a=1,b=2 rest=[3,4,5]

a,b*_ = t
# 此时, a=1,b=2 剩余被*_所替代

三、字符串

定义: 

  1. '  '  或者 " "来定义  
  2. 对于 符号 如 使用]来转义 如: \\ 表示反斜杠   \' 表示单引号  \" 表示双引号  \n 表示换行 等
  3. 如果想输出原始的字符,即使有转义也会原模原样的输出,前面+ r 
  4. """ 同注意一样,可以多行输出字符串

内置方法

多数同Java,暂略

字符串的格式化

   str.format()

str ="{0} is {1}".format('She','Lovely'); #  根据位置去匹配,从零开始
str ="{a} is {b}".format(a='She',b='Lovely'); #  根据参数匹配
str ="{0} is {b}".format('She',b='Lovely'); #  根据参数和位置混合匹配,位置必须在前
str ="{0:.2f}  {1}".format(27.68,'GB'); #  根据参数匹配,同时格式化

#  对于格式化有多种形式 基本样式 '%d' %参数 可以后续深入了解

四、 字典

 定义:  一组无需的键值对(key:value)的集合  {元素1,元素2,元素3} 每一个元素都可以是键值对

     特点:

  1.  key值不重复,且无序 
  2. 一个key值对应一个value值,如果 添加元素时,已存在key值,后来的元素将会用value值覆盖之前的值
  3. 通过key值可以定位到value值,如果key值不存在则报错 keyError
  4. 使用dict() 来创建一个空的字典

内置方法

  1. dict.fromkeys(seq) 以sql为key  其中value为初始值 返回 对应值
  2. dict.keys() 返回key的迭代  可以使用list()方法转为列表及遍历
  3. dict.values() 返回values的迭代,同样可以使用list()转为列表及遍历
  4. dict.items() 返回其中的所有 key:value 的键值对
  5. dict.get() 获取指定的key,如果不存在则返回默认值
  6. dict.setdefault() 同get 但是其中的key:value 如果不存在则返回value
  7. dict.pop() 删除key对应的value值,并返回value值,如果不存在则返回默认value  #  del dict[key]  删除对应key的value 但是不返回
  8. dict. popitem() 随机返回并删除一名幸运的键值对,如果不存在,则报错KeyError
  9. dict.clear() 清空
  10. dict,copy() 浅复制

五、 set 集合

    set与dict不同

 形式定义特点
set单独的元素元素不重复且无序
dict键值对key:valuekey值不重复且无序

 

集合的创建

  1.  集合可以{..元素} 来创建
  2.  但是当集合元素为空的时候,不能使用{} 这样会被当成dict  应该使用 t=set()
  3.  因为set的特殊性,set可以用来去重等多种操作

集合的内置方法:

  1. add()  添加元素,重复则不进行操作 
  2. update()  修改集合,相当于复制+去重
  3. remove()  删除指定元素
  4. discard() 移除指定的集合元素
  5. pop() 随机挑选一个元素,进行删除操作

六、 总结

至此,python的Task2 学习到此结束,因为时间问题,断断续续的学习,没有仔细去了解,详细的内容,作为一个大纲了解,后续再进行,详细的学习.

总体上Task 学习的是对一组元素之间的操作,和容器的介绍. 这里只是一个大概的概念,详细的操作,像set的去重等,在算法上都可以用的上,需要灵活变通

其中,的各种内置方法也许要在使用的过程中,去加深印象,单独记忆不去实操使用,比较枯燥,目前就这样了. over

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值