恶魔的微笑111

导航

python数据类型基础总结(字符串 列表 元组 字典 集合 )

字符串:
有序、不可变数据类型,支持索引,切片,步长(字符串中的每一个字母或字符都称为元素)
索引(下标):通过索引精确定位到每个元素
索引从左开始向右排 从0开始 索引时不能超过最大值,超出报错 从右向左排从-1开始
切片(顾头不顾尾)
步长 print(name[::2] 取整个字符串,步长为2
字符串方法:

  upper 全部大写   lower全部小写     capitalize  首字母大写     title每个单词的首字母大写    
  swapcase 大小写转换
  starswith 以..开头   endswith  以..结尾    
  center  居中 (填充)
  find 查找(通过元素查找索引,找不到返回-1)    index 查找(通过元素查找索引,查找不到报错)
  join 拼接 (将列表转化为字符串) print("_".join(["1","2","4"]))
  count 统计     strip脱去两端的空格换行以及制表符
  split 分割 (以空格和换行以及制表符进行分割,也可以以指定的方式进行分割)
  replace 替换 format 字符串格式化

判断系列(is)
   isdecimal 判断是否是十进制
   isalnum  判断是否是字母中文 数字
   isalpha 判断是否是字母中文
   isdigit 判断是否是全部是阿拉伯数字

列表(关键字:list):它是以[]括起来,每个元素以逗号隔开,可以存放各种数据类型
可变有序的数据类型 支持索引,切片,步长和增删改查
列表的增:append insert extend
insert 方法用于将对象插入到列表中,而append方法则用于在列表末尾追加新的对象,
extend 把一个可迭代对象打开.每一项拿出来追加到list中 ,他们三个有个共同点就是没有返回值。
列表的删:remove pop del clear
1、 pop. 向外弹出最后一个或指定元素的索引,有返回值,可用一个变量接受被删除的内容,指定索引不存在时,会报错。
2、remove 指定元素进行删除 是元素不是索引,删除不存在的元素会报错。
3、 clear 清空列表
4、del 列表 将整个列表删除切片删除
del lst[1:3] 将指定切片范围内的元素进行删除
列表的改:索引、切片、步长
索引修改 li1 = [1, 2, 3, {'a':1, 'b':2}] li1[0] = 'a' # 改变1
切片修改(范围或区间)不带步长或者是步长为1的切片,则不用关心切片与修改的元素个数是否相等。
注意:步长不为1,要注意切片内的元素个数是否与更改的值是否相等。 如果步长不是1, 要注意. 元素的个数必须相同
列表的查:
for循环
列表的嵌套:[......] 视为一个元素

列表的其他:
1、count
查询列表中某个元素出现的次数
c = lst.count("太白") # 查询太白出现的次数
2、降序
lst.sort(reverse=True)
lis.sort(func=None, key=None, reverse=False(or True))
与sorted 的区别是sort是原地修改,只能用于列表,而sorted是返回一个新的序列,可以用在任意一个可迭代对象中
3、reverse
原地翻转
lst.reverse()
4、len
列表的长度

5、index
     返回从左到右列表中某个元素出现的第一个索引值

列表推导式
[变量(加工后的变量) for 变量 in 列表] 循环模式

列表sort()添加key和reverse参数操作方法
sort()是python列表排序方法,key和reverse更是经常用到的sort方法另外两个可选参数。使用时要通过关键字参数,也就是名字来指定。
key在sort()函数中的作用,使用时都需要提供可以做为排序依据的函数。比如说我们有一个列表,要以列表内元素的长度来排序,那么就需要用到计算长度的len()函数
x = ['hello','abc','iplaypython.com']
>>> x.sort(key=len)
>>> x
['abc', 'hello', 'iplaypython.com']
当然做为key排序依据的函数,不仅仅是len,只要按照你的需求写入对应的函数就可以。假如需要以整型数字来排序,就需要用到int:

    >>> a = ['3','188','50','1225']
    >>> a.sort(key=int)
    >>> a
    ['3', '50', '188', '1225']

    sort()还有另外一个关键字参数,就是reverse,它是一个布尔值True/False,作用是用来决定是否要对列表进行反向排序

        >>> a.sort(key=int,reverse=True)
        >>> a
        ['1225', '188', '50', '3']

l st = [1,23,4,5,7,8,9]
print(lst.index(4)) # 通过元素查找索引
lst.sort() # 排序 默认是升序
lst.sort(reverse=True) # 降序
print(lst)

        lst = [1,23,4,5,7,8,9]
        lst.sort()
        lst.reverse()             # 人工降序
        print(lst)

        lst = [1,23,4,5,7,8,9]
        lst.reverse()
        print(lst)               # 将源数据进行反转

        lst = [1,23,4,5,7,8,9]
        lst1 = lst[::-1]
        print(lst)
        print(lst1)              # 不修改源数据进行反转

        lst = [1,2,3,4]
        lst = lst + [1,2,3]
        print(lst)  # [1,2,3,4,[1,2,3],]   [1,2,3,4,1,2,3]

        lst = [1,2,3] * 5
        print(lst)
        print(id(lst[0]),id(lst[3]))

元组(关键字:tuple):
有序,不可变数据类型(只有查)

range范围:
range(1,10)[起始位置:终止位置]顾头不顾尾,可迭代对象
range(1,10,2)[起始位置:终止位置:步长]
​ (10代表的是终止位置,起始位置默认为0)
range的诞生是为了解决不能循环数字

字典(关键字:dict):所有的操作都是通过键
无序可变的数据类型
键:必须是不可变数据类型, 值是任意的

    字典的增:通过键值对添加(强加)
                       字典名['键]="值"
                      有则不加,无则不加
                        字典名.setdefault(键    , 值     )
    字典的删:pop  clear  del   字典中没有remove
                       字典名.pop()    通过字典的键进行删除
                       字典名clear()  清空整个列表
                       del.字典名[''键”]  通过键进行删除  
     字典的改                 
                   字典名['键]="值"
                    update
                        d={'x':5}
                        c={'12':65}
                        c.update(d)
                        print(c)

    字典的查
        dic.get("键") 查询不到返回None,查找不到的时候,返回自己制定的内容
        dic.setdefault(" 键 ")查询不到返回None
        print(dic.keys( ))    获取一个键高仿列表
        print(dic.values())获取一个值高仿列表
        高仿列表支持迭代,不支持索引
      for i in dic :
      print(i,dic[i])   打印键值
        lst.append(i,dic[i])

        for i in dic.items():
        print(lst(dic.items()))

    字典的其他:
        dic = {"key":1,"key1":2,"key2":4,"key3":1}
        print(dic.popitem())   # 随机删除  python3.6版删除最后一个键值对
        # popitem返回的是被删除的键值对
        print(dic)

集合(关键字:set) 集合就是没有值的字典(天然去重)
可变 无序的数量类型
一行代码去重
print(list(set(去重的内容))
集合的增:add(直接添加) update(迭代添加)
集合的删:remove(指定元素删除) clear(清空) pop(随机删,通常是最小的)
集合的改: 先删后加
集合的查: 只有for循环

集合的其他操作
s1 = {"刘能", "赵四", "⽪⻓⼭"}
s2 = {"刘科⻓", "冯乡⻓", "⽪⻓⼭"}
交集
两个集合中的共有元素
print(s1 & s2) # {'⽪⻓⼭'}
print(s1.intersection(s2)) # {'⽪⻓⼭'}
并集
print(s1 | s2) # {'刘科⻓', '冯乡⻓', '赵四', '⽪⻓⼭', '刘能'}
print(s1.union(s2)) # {'刘科⻓', '冯乡⻓', '赵四', '⽪⻓⼭', '刘能'}
差集
print(s1 - s2) # {'赵四', '刘能'} 得到第⼀个中单独存在的
print(s1.difference(s2)) # {'赵四', '刘能'}
反交集
print(s1 ^ s2) # 两个集合中单独存在的数据 {'冯乡⻓', '刘能', '刘科⻓', '赵四'}
print(s1.symmetric_difference(s2)) # {'冯乡⻓', '刘能', '刘科⻓', '赵四'}
s1 = {"刘能", "赵四"}
s2 = {"刘能", "赵四", "⽪⻓⼭"}
⼦集
print(s1 < s2) # set1是set2的⼦集吗? True
print(s1.issubset(s2))
超集
print(s1 > s2) # set1是set2的超集吗? False
print(s1.issuperset(s2))

数据类型的各种转换

str -- int
int -- str
str -- bool
bool -- str
int -- bool
bool -- int

list -- tuple 元组
lst = [1,23,5,4]
print(tuple(lst))

tuple -- list
tu = (1,23,5,4)
print(list(tu))

list -- set
lst = [1,23,12,31,23]
print(set(lst))

set -- list

tuple -- set
tu = (1,2,3,4,5)
print(set(tu))

set -- tuple

目前字典转换,自己实现方法
例:有字符串"k: 1|k1:2|k2:3 |k3 :4" 处理成字典 {'k':1,'k1':2,'k3':4}
dic = {}
a=a.split('|')
print(a)
for i in a:
print(i)
i=i.split('😂
dic.setdefault(i[0],int(i[1]))
print(dic)

字典和集合在遍历(循环)时不能修改原来的大小(字典的长度),可以进行修改值
s = {1,2,3,4,5,6}
for i in s:
s.pop()
print(s)

posted on 2019-08-28 21:52  恶魔的微笑111  阅读(221)  评论(0编辑  收藏  举报