数据类型

不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合);可哈希

可变数据(两个):List(列表)、Dictionary(字典)。不可哈希


字符串,列表,元祖的索引与切片

索引:例如
  str='abcdefg'
  str[0]='a'
  str[-1]='g'

切片:例如
  str='abcdefg'
  str[0:4]='abcd' #切片:顾首不顾尾
  str[:-1]='abcdef'
  str[:]='abcdefg'
  str[::2]='aceg'
  str[::-1]='gfedcba' #str[首:尾:步长]


公共方法

  len();#计算str包含多少字符,list多少元素,dict多少键值对,Tuple多少元素。

  .count();#查找字符,元素的出现次数。

  type();#判断数据类型,()中输入需要判断的数据。


str常用操作方法

  str.capitalize();#字符串首字母大写。

  str.upper() ; #字母全部大写。

  str.lower();#字母全部小写。

  str.isupper();#是否字母全大写。

  str.islower();#是否字母全小写。

  str.swapcase();#字母大小写反转。

  str.title();#字母标题化 每个隔开(特殊字符或数字)的单词首字母大写。

  str.center();#字符居中 需要填入参数 width(宽度) 默认fillchar(填充物)为None,可以自己设置填充物。

  str.expandtabs();#与Tab(\t)使用 补充位数。

  str.startswith();#检测字符串是否以'什么'为开头,返还True,False。

  str.endwith();#检测字符串是否以'什么'为结尾,返还Ture,false。

  str.find(); #查找字符串中的元素,返回此元素的下标(索引),找不到返还-1,可切片规定寻找范围。

  str.index(); #str.find()类似,如果找不到会报错*

  str.strip();#去除前后的空格 如果要去除前面的空格使用str.lstrip(),去除后面的空格使用str.fstrip()。str.strip('需要删除的元素')默认为空格可以更改。

  str.split();#str.split('拆分的字符',num)进行拆分把一个字符串转化为一个列表,被拆分的内容不存在。如果设置了num 则切分成num+1次(str>>>list)*

  str.rsplit(); # 从右往左分 默认split是从左往右分

  str.replace();#替换 str.replace('替换内容','新的内容',次数(默认为全部替换))。

  str.isalnum();#字符串是否由数字或字母组成。

  str.isalpha();#字符串只由字母组成。

  str.isdigit();#字符串只由数字组成。

  str.isspace();#字符串只由空格组成。


int常用操作方法

  int.bit_length();#把数字转化为二进制最小的位数。


list列表—[]的增删改查

增:

  list.append();#在原有列表的基础上在末尾增加元素;直接打印无返还值。
  list.insert();#在列表中指定位置插入元素,需要输入两个参数插入的位置和需要插入的内容
  list.extend();#迭代增加,()中必须是可迭代对象,增加内容为最小元素。

删:

  list.pop();#按索引删除,如果不加索引默认删除最后一个;有返回值 返回删除的值。
  list.remove();#按元素去删,无返回值。
  list.clear();#清空列表。
  del();#删除列表,也可以切片删除部分。

改:

  list['需要更改内容的索引']='要更改的内容'#直接通过索引去改;
  list.['需要更换切片的内容']='需要更改的内容'(增加的list中以最小元素拆分放入),#先将你需要替换的内容拿出来在放入你需要更改的内容,你需要更改的内容以最小元素分开放入列表中。

查:

  list.[索引或切片];#利用索引和切片查找元素。
  for i in list:
    print(i)#查列表中所有的元素打印出来。
  list.index('元素');#通过元素找索引。

排序:

  list.sort(cmp=None, key=None, reverse=False)
    cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
    key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)
  list.reverse();#列表的反转。

list补充:

去除多余嵌套的列表(迭代)

def f(x):
  ret=[]
  for b in x:
    if isinstance(b,list):
  for a in f(b):
    ret.append(a)
  else:
    ret.append(b)
  return ret


元祖type-()

  元祖 只读列表,可循环查询,可切片,如果里面嵌套可修改内容,可以更改嵌套里可修改的内容。

  (连接对象str).join(可迭代对象);# 将可迭代对象每一个都加上连接对象成为一个新的字符串,可以将可迭代对象转化为字符串。(list;tuple>>>str)*************

  range();#生成数列(起始值(如果是0可以省略),终止值(不包括本身),步长(默认为0))。

  元祖  如果元祖里面只有一个元素且不加,那此元素是什么类型,就是什么类型。


字典dict-{}的增删改查

dict(映射类型,键值对)
dict key(键必须是不可变数据类型) 可哈希
dict 优点:
  1.二分查找去查询。
  2.存储大量的关系型数据。
  3.无序的(python3.5前)。

增:

  dict['键'] =值 # 如果dict中没有此键,就添加,如果有键,就覆盖。
  dict.setdefault() # ('键','值,(值如果不写默认为None)')如果dict中有此键则不执行任何操作不做任何改变。
  dict.formkeys(seq,'value(不填默认为None))');# Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值

删:

  dict.pop('键') # 直接按照键去删除,有返回值,返回的是键值对的值,如果dict中没有此键,则会报错(解决方法:dict.pop('键','提示字符')如果加了提示字符在dict中没有此件时返回你输入的提示字符)。
  dict.popitem() # 随机删除(python3.5之前没有排序随机删除python3.6后有排序删除最后一个键值对),有返回值,返回的是键值对。
  dict.clear() # 清空dict。
  dict.del() # 删除整个dict,如果('键')删除键值对,如果dict中没有此键则会报错,无返回值。
  del dict["key"] # 删除此键值对

改:

  dict['键'] =值 # 输入以有的键赋给新值就是更改键值对。
  dict2.update(dict) # 把dict所有的键值对更新到dict2中,原dict无变化。

查:

  dict['键'];# 查找dict的对应的值
  dict.keys();# dict中的键,放在一个列表中。
  dict.values();# dict中的值,放在一个列表中。
  dict.items();# dict中的键值,在一个列表中,但键值放在一个元祖中隔开。
  dict.get();# dict.get('查找的内容','提示字符') 如果没有此键返回提示字符。
  sorted();# sorted('dict.keys;dict.values;dict.items')返回一个新的list,不在原函数更改;list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
  dict.setdefault();# Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值。(也有增的功能)

补充:

  在循环列表和字典中 不要直接删除原列表和字典中的内容,达不到相应的要求容易报错。


集合set-{}的增删改差

  set集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。set1=set({1,2,3});set1={1,2,3}。

  set.add('需要添加的内容');# 直接添加。(集合是无序的 随机添加到位置)
  set.update(需要添加的内容);# 迭代增加 把需要添加的内容化为最小元素分开放入集合中。(集合是无序的 随机添加到位置)

  set.pop();# 随机删除 ,有返回值。
  set.remove();# 按照元素删除,如果没有会报错。
  set.clear();# 清空集合 表现方式为set()。
  set.del();# 删除整个集合。

  # 因为set中元素不可变所以不能更改

  for i in set:print(i);

计算

  交集:'&' 或者使用 set1.intersection(set2);
  并集:'|'或者使用 set1.union(set2);
  反交集:'^'或者使用 set1.symmetruc.difference(set2);
  差集:'-'或者使用 set1.difference(set2);#set1独有的set2没有的拿出来;
  子集:'<'或者使用ste1.issubset(set2);#说明ste1是set2的子集;返回布尔值;
  超集:'>'或者使用ste1.issuperset(set2);#说明ste1是ste2的超级;返回布尔值;

类型转换

  list>>>set
  set = ste(list)
  set>>>list
  list=list(set)

转化不可变数据类型

  frozenset();# frozenset() 返回一个冻结的集合,冻结后集合只能查看不能再添加或删除任何元素.比如列表、字典、元组等等


分类 数字,字符串 小数据池(地址)

  # 数字的范围 -5 -- 256 如果数字范围在此,创建多个变量都等于他,用的地址是一样的。
  # 字符串:
  1.不能含有特殊字符;(如果字符串中包含特殊字符,不管多长多段都不会共用一个)。
  2. S*20 还是同一个地址,S*21以后都是两个地址。(S为一个字节)
  # 除了数字与字符串 没有 小数据池的概念。


Python基础数据类型以及对应方法的更多相关文章

  1. Python 入门之Python基础数据类型及其方法

    Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...

  2. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  3. Python基础数据类型-字符串(string)

    Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...

  4. python基础数据类型考试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

  5. python 基础数据类型之list

    python 基础数据类型之list: 1.列表的创建 list1 = ['hello', 'world', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ...

  6. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  7. Python基础数据类型题

    Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...

  8. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  9. Python基础数据类型之集合

    Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...

随机推荐

  1. EF工作流程

    1.EF基本的CRUD(增删改查)流程 2.EF的工作过程简析 EDM--Entity Data Model--实体数据模型 概念模型: EF通过领域类,上下文类,默认约定和配置构建概念模型. 存储模 ...

  2. JAVA 注解教程(一)简单介绍

    相关网址 https://blog.csdn.net/briblue/article/details/73824058 --- 已经整理成笔记 https://blog.csdn.net/bao199 ...

  3. sql注入学习笔记 详解篇

    sql注入的原理以及怎么预防sql注入(请参考上一篇文章) https://www.cnblogs.com/KHZ521/p/12128364.html (本章主要针对MySQL数据库进行注入) sq ...

  4. 简单的xss注入和防御

    什么是xss注入: xss通常就是通过巧妙的方法注入指令到指定页面,使用户加载执行的恶意的js(或者其他类型)的代码,攻击者会获取用户的一系列信息,如cookie等,从而进行其他用户信息的盗取 为什么 ...

  5. Safari 导航栏

    目录 引子 隐藏 Safari 导航栏 显示 Safari 导航栏 iPhone 系统占比 参考资料 引子 最近在 iPhone 的 Safari 查看 h5 页面时,发现有些平台的页面向下滚动时,顶 ...

  6. C#中ESRI.ArcGIS.esriSystem的引用问题

    ESRI.ArcGIS.esriSystem,在引用里没有它的同名引用,其实它对应的引用为ESRI.ArcGIS.System,所以添加“ESRI.ArcGIS.System”这个引用即可

  7. jsonp实现js跨域请求

    sonp是跨域通信的一个协议 具体来说jsonp实现跨域请求其实是使用js文件引用(js文件不一定是.js结尾)可跨域的性质,将请求的结果包裹在客户端需要调用的js方法内部.需要前后端配合使用. 前段 ...

  8. telnet不起作用

    1.出现 'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件. 原因:因为本机的Telnet客户端默认是关闭的,所以我们要手动打开 解决方案:打开控制面板–>程序–>打开 ...

  9. 隐写工具F5-steganography的使用

    1.git clone https://github.com/matthewgao/F5-steganography 2.进入F5-steganography-master文件夹,在空白处 ctrl+ ...

  10. bzoj 2049: [Sdoi]Cave 洞穴探测 (LCT)

    第一次写lct (这是一道lct裸题 这次没有可爱(划掉)的同学教我,虽然有模板,但是配合网上的讲解还是看不懂QAQ 然后做了几道题之后总算有些感觉辣 于是决定给自己挖个坑,近期写一个lct详解(不过 ...