other

help(str.strip) #查看是否有返回值以及返回值类型
[] :称为索引操作符

1.列表

列表相比字符串来说能存储大量数据的python的基本数据类型,并且也拥有字符串的一些方法(索引,切片等等)

列表是以[]中括号组成,每个元素以,逗号隔开的,容器型数据类型。
列表中的常见的方法
  l1 =['kobe','james','t-mac','',789,[123,'admin']]
  索引
   print(l1[1])
   print(ret1,type(ret1))
   print(l1[-1])   切片 顾头不顾腚
   print(l1[:4])
   print(l1[:5:2])   倒叙取值
   print(l1[-1:-4:-1])   增加
   l1.append('') #追加增加
  l1.insert(1,'') #在索引为1的位置插入
  l1.extend([123,'ab']) #迭代的而加入是:根据要添加的类型进行一次迭代之后,在添加到列表中。如果添加的时字符串,就分割之后,添加到列表。
                  #如果添加的是列表,就循环列表,在分别添加到要添加的列表中。和切片修改是同一个意思,说白了迭代增加的必须是可迭代的元素   删除
   l1.pop(0) #按照索引删除,会将删除的元素作为返回值返回
   l1.remove('kobe') #按照元素删除,不会返回被删数据
   l1.clear() #清空列表   del 删除
   del l1[0] #1.按照索引删除,默认删除最后一个
  del l1[2:5:2] #按照切片(可以加步长)删除
   del l1[:] 或者del l1#删除整个列表   改
   l1[0] = "男神" #按索引修改,l1[0]指的时位置,修改l1[0]这个位置的元素的值为男神,本意指的li[0]这个元素,但是放在等号左边就是代表位置,要接受新值
   l1[:3] = [123,""]或者l1[:3] ="" #按切片范围修改,要添加的内容必须是可迭代元素,和迭代增加一样
  l1[1:4:2] = "" #切片(加步长):必须一一对应,改了几个就得写几个修改的值,不能多或少   查
   按照索引(index),按照切片(步长查询),列表没有find方法
  使用for循环   其他操作
   len():去长度 index():通过元素找索引,找到第一个就返回,找不到就报错
   l1.sort() 从小到大排序#不会生成新的字符串 l1.sort(reverse=True) #从大到小
   l1.reverse()翻转 #不会生成新的字符串
other:
    pop():执行后唯一有返回值的   
 

 2.元组

python中基础数据类型之一,容器型数据类型,存储大量的数据。只读列表。
元组是()里面的元素以,隔开的数据类型。
其他语言中,没有元组的概念。元组是不可以进行修改的,只能查询。元组中存储的都是重要的数据,个人信息等等。 元组练习
  tu1 = (1,'kobe','',[1,2,'mac',True])
  print(tu1[0]) #可以索引
  print(tu1[:3]) #可以切片
  print(tu1[:4:2]) #可以根据步长切片 查:注意:元组只能查不能改,
#根据索引和切片等进行查询或者#根据for循环
  for item in tu1:
  print(item) other
del tul print(tu1) #删除元组
print(len(tu1)) #查看元组长度
print(tu1.count("")) #查看包含字符个数
print(tu1.index("kobe") #和列表,字符串中使用一样,查找元素的索引 元组真的不能修改么?
tul = ('', True, 456, [123, 'jordan', '中文'])
tul[3].append('')
print(tul)
#:在元组中的元素的是可迭代对象的话,就可以改:儿子不能改,孙子可能改。
有意思的一个问题:
  tu = (123,1,'123',True)
  print(tu.index(True))
  #这个索引不应该是3么? 因为True和false在内存中存储的是1和0,所以tu.index(True) =tu.index(1),打印这个相当于打印print(tu.index(1))的索引,元组中正好有1这个元素,所以打印1这个元素的索引 #坑
 (22) --->int类型,不加,都是元素本身
 (s) --->字符串类型
 

3.range

range函数练习
内置函数,python给你提供的一个功能。
将range视为:可控制范围的数字列表。 #打印1-100
for item in range(1,101):
print(item) #打印1-100奇数
for item in range(1,100,2):
print(item) #打印1-100偶数
for item in range(2,102,2):
print(item)
#打印10-1
for item in range(10,0,-1):
print(item, '', end='') 注意:
  1.range()的起始位置默认为0
  2.python2中是一起全部生成,不用迭代出来,直接打印,python3中是先放在内存里面,等使用了再生成。(这也是python3比python2性能上高的一点)

作业

# 使用循环查找一个字符串中指定字符的所有索引值, 保存在一个列表中,找出所有a的索引值
  s = 'abcabcabc'
  count = 0
  l1=[]
  for item in s:
  if item == 'a':
  l1.append(s.index('a',count,)) #主要是字符串索引可以通过起始位置和结束位置来查找
  else:
  pass
  count += 1
  print (l1)

4.字典

为什么要使用元组?
  1.列表如果存储的数据较多的话,查询速度会比较慢
  2.列表存储数据的关联性不强
  字典的查找是根据键值的hash来对应的内存地址进行查找的,比二分法还会快一些
字典介绍:
  python中唯一的映射类的数据,花括号{}括起来,他是以键值对形式存储,每一对键值对以,逗号分开!
  dic = {'name': 'kobe', 'age': 18, 'sex': 'man'} 字典的特点:
  1.字典是以键值对形式存储的,
    键:不重复的,唯一的,键的数据类型必须是不可变的数据类型。(键唯一;指的是无论添加多少个相同的键,只有最后一个起作用,起到了覆盖的作用)
    值:任意数据类型,对象。
  2.字典可以存储大量的键值对数据,
  3.python3.6之前:字典是无序的。python3.6之后,字典变成有序的。3.7以后确实从语法层面上变得有序了。(3.6中的有序是解释器的作用,不是python的源码特点)
字典的优点:
1,字典存储大量的关系型数据。
2,字典的查询速度非常快。
字典的缺点:
  占用空间大

  dic ={
      'name':'kobe',
      'age':40,
      'hobby':'wife'
  }

  增加操作
    1.有就修改,没有就添加,根据键值,不会报错
      dic['agesdas1']=20

    2.有就不变,没有就添加,根据键值,不会报错
      dic.setdefault('h') #默认添加None,默认返回键h的值,有返回值
      dic.setdefault('name','123')

  删除操作
    pop() 删除,按照键删除
      dic.pop('name') #按照键值删除,默认删除的键值不存在的话会报错
      dic.pop('name','没有此键')#第二个参数为提示语,一般设置成None
    clear() 清空
      dic.clear()
    popitem(): 3.6之前版本随机删除,但是3.6版本删除最后一个键值对,因为python3.6版本之前,dict类型是无序的,在3.6版本之后变成有序的了
      ref = dic.popitem() 有返回值,是被删除的键值对组成的元组
    del删除
      del dic['name'] 按照键删除,如果键值不存在会报错
      del dic 删除字典

  修改操作
    1.dic['age']=73 根据键值来修改,没有键值的话就添加
    2.update
      a.dic.update(abc="123",bcd="456")  #有就覆盖,没有键值就增加
      b.dic.update(dic2) #将一个字典添加到另一个字典中,dic1里面有和dic2相同的键值,就将dic1中键所对应值修改成dic2中(将dic2中的键值对覆盖追加到dic中)
      update里面的键值不能是数字

  查操作
    print(dic['age']) 如果不存在键,则报错
    print(dic.get('ag')) 如果不存在键,返回nono
    print(dic.get('ag',"没有此键")) 可设置返回值

    print(setdefault.('1'))

  formkeys:  用于创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None
    iterable=[1,2] value='a'
    v1 = dict.fromkeys(iterable,value)
      iterable: 用于创建新的字典的键的可迭代对象(字符串、列表、元祖、字典)。
      value:     可选参数, 字典所有键对应同一个值的初始值,默认为None。
    print(v) {'1': 'a', '2': 'a'}

  other 其他三个类似列表的类型,都可以转化成list,是高仿list,没有索引
    print(dic.keys(),type(dic.keys()))
    print(dic.values(),type(dic.values()))
    print(dic.items()) #可以使用for循环
    for k,y in dic.items():
      print(k,y)

  分别赋值:a =18,b=32,使用一句代码将其调转
    a,b=32,18
      print(a,b) #a=32,b=18
    a,b={'name':'alex','age':73}
      print(a,b) #a=name b=age
    a,b =[123,2345]
      print(a,b) #a=123 b=2345

    原理就是将a和b指向的内存地址的标签调换

 5.数据类型的比较

 数据类型的划分:
容器非容器划分:
容器型数据类型:list,tuple,dict,set。
非容器型数据类型:int str bool
  可变与不可变划分:
可变(不可哈希hash)的数据类型:list dict,set
不可变(可哈希hash的)的数据类型: int bool str tuple

序列类型:

6.字典里习题

#将a和b组合成c的样式,并支持扩展
a = [
'a,1',
'b,3,22',
'c,3,4',
'f,5'
] b=[
'a,2',
'b,4',
'd,2',
'e,12'
] c = [
'a,1,2',
'b,3,22,4',
'c,3,4',
'd,2',
'e,12',
'f,5'
] dic ={i[0]:i for i in a}
print(dic)
for ite in b:
if ite[0] in dic:
# if dic.get(ite[0]):
dic[ite[0]] += ite[1:]
else:
dic[ite[0]] = ite
print(list(dic.values()))

 返回系列

python基础之 列表,元组,字典的更多相关文章

  1. python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)

    列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...

  2. Python入门基础学习(列表/元组/字典/集合)

    Python基础学习笔记(二) 列表list---[ ](打了激素的数组,可以放入混合类型) list1 = [1,2,'请多指教',0.5] 公共的功能: len(list1) #/获取元素 lis ...

  3. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2   本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...

  4. python基础之列表、字典、元祖等 (二)

    一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...

  5. python基础(五)列表,元组,集合

    列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...

  6. Python基础 之列表、字典、元组、集合

    基础数据类型汇总 一.列表(list) 例如:删除索引为奇数的元素 lis=[11,22,33,44,55] #第一种: for i in range(len(lis)): if i%2==1: de ...

  7. Python 基础-python-列表-元组-字典-集合

    列表格式:name = []name = [name1, name2, name3, name4, name5] #针对列表的操作 name.index("name1")#查询指定 ...

  8. Python初学笔记列表&元组&字典

    一.从键盘获取 1 print("请输入") 2 username = input("姓名:") 3 age = input("年龄:") ...

  9. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

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

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

随机推荐

  1. HTML5学习笔记(二十九):Cookie和Session

    HTTP协议本身是无状态的,这和HTTP最初的设计是相符的,每次请求都是创建一个短连接,发送请求,得到数据后就关闭连接.即每次连接都是独立的一次连接. 这样的话,导致的问题就是当我在一个页面登陆了账号 ...

  2. 【宣讲】德州科技职业学院宣讲关于IT领域趋势分析

    12月25日,AICODER马伦老师受德州科技职业学院校领导的邀请,到德州科技职业学院青岛校区洽谈新型的校区合作,创新现有的职业教育的传统模式的束缚,探索新型的职业教育直接跟企业实习实战结合的新型职业 ...

  3. ng-repeat 的重复问题

    如果ng-repeat绑定的数组中元素有重复, 如 $scope.data = [1,2,2] ng-repeat="value in data"  //这种写法就会报错,ngRe ...

  4. HTML 09 web 内容与攻击技术

    Servlet 改进 CGI 之前提及的 CGI, 由于每次接到请求, 程序都要跟着启动一次, 因此一旦访问量过大, web 服务器要承担低昂当大的负载, 而 servlet 运行在与 web 服务器 ...

  5. C#访问gsoap的服务--可用

    问题来源: C++开发一个webservice,然后C#开发客户端,这样就需要C#的客户端访问gsoap的服务端.(大家都知道gsoap是C/C++开发webservice的最佳利器) 为什么不考虑直 ...

  6. JAVA并发编程——守护线程(Daemon Thread)

    在Java中有两类线程:用户线程 (User Thread).守护线程 (Daemon Thread). 所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称 ...

  7. DirectX using C++_error X3539:ps1_x is no longer supported...解决方案

    问题来源 在研究HLSL时编译一个demo出现了error X3539的问题 解决方案 将代码中的ps_1_1 改为ps_2_0 PixelShader = compile ps_1_1 PS(); ...

  8. 树莓派mariadb 设置密码

    参考: sudo mysql -u root -p select Host,User,plugin from mysql.user where User='root'; plugin(加密方式)是un ...

  9. ABBYY PDF Transformer+ 给你好看

    ABBYY PDF Transformer+是一个新的.全面的巧妙解决PDF文档的工具,它将泰比的光学字符识别(OCR)技术和Adobe®PDF技术完美结合,以确保实现便捷地处理任何类型的PDF文件, ...

  10. 【转】Yelp是如何实现每天运行数百万个测试的

    Yelp每天要运行数百万个测试,确保开发人员提交的代码不会对已有的功能造成破坏.如此巨大规模的测试,他们是怎么做到的呢?以下内容翻译自 Yelp 的技术博客,并已获得翻译授权,查看原文 How Yel ...