Python基础--字符串、列表、元组、字典

本篇文章将介绍Python3中常见数据类型:字符串、列表、元组、字典,主要关于是数据的遍历、修改、删除、保存。

字符串

将数据用单引号或者双引号括起来的就是字符串。字符串类似于C、Java中的字符数组,支持下标索引。

 a = “hello world”
 a = ‘hello world’
print(a[4])
输出:‘o’
  • 切片

  切片语法:[起始:结束:步长],切片区间是[起始:结束)即左闭右开的,起始位开始结束前一位结束。

>>> mystr = 'abcdefghijk'
>>> mystr[0:5]
'abcde'
>>> mystr[0:5:2]
'ace'
>>> mystr[5:1:-1]
'fedc'
>>> mystr[5:1:-2]
'fd'
>>> mystr[3:]
'defghijk'
>>> mystr[::3]
'adgj'
>>> mystr[:5]
'abcde'
>>> mystr[::]
'abcdefghijk
  • 字符串常见操作

(1) find  查询str是否包含在mystr中,如果是返回开始索引的位置,否则反回-1。

find(str, start=0, end=len(mystr))
>>> mystr = "hello world java python php" >>> mystr.find("world") 6 >>> mystr.find("python",0,10) -1

(2) index 和find一样,如果查询不到将报异常错误。

index(str, start=0, end=len(mystr))
>>> mystr.find("python",0,10) -1 >>> mystr.index('python',0,10) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found

(3) count,返回start和end之间str在mystr中出现的次数。

count(str, start=0, end=len(mystr))

>>> mystr="hello world python java python"
>>> mystr.count("python")
2

(4)replace替换,把mystr中的str1成为str2,如果count指定,则替换不超过count次数。

replace(str1, str2,  mystr.count(str1))

>>> mystr="hello world python java python"
>>> mystr.replace("python","python3",1)
'hello world python3 java python'

(5)split,用str为分割符切片mystr,如果指定maxsplit指定,则分割后是一个maxsplit+1的列表。

split(str="", maxsplit )  

>>> '1,2,3'.split(',')
    ['1', '2', '3']
>>> '1,2,3'.split(',', maxsplit=1)
    ['1', '2,3']
>>> '1,2,,3,'.split(',')
    ['1', '2', '', '3', '']

(6)startswith,查询字符串是否是以obj开头,如果是则返回True,否则返回False

      endswith,查询字符串是否是以obj结束,如果是则返回True,否则返回False 

mystr.startswith(obj)
mystr.endswith(obj)

>>> mystr = "hello world python java python"
>>> mystr.startswith('hel')
True
>>> mystr.endswith('thon')
True

(7)strip删除两端空白,lstrip删除左边空白,rstrip删除右边空白

>>> mystr = "   hello world python java linux    "
>>> mystr.rstrip()
'   hello world python java linux'
>>> mystr.lstrip()
'hello world python java linux    '
>>> mystr.strip()
'hello world python java linux'

(8)join 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串

>>> lis = ['shang','hai','zhong','guo']
>>> ' '.join(lis)
'shang hai zhong guo'

列表

列表对应于C、Java中的数组,它比数组强大的地方在于可以存储不同类型的值。如 testList =  [100,'HH']

(1)循环遍历列表

lis = ['my','name','is','zjh']
for name in lis:
    print(name,end=' ')
print()

输出:my name is zjh

 

i = 0
while i < len(lis):
    print(lis[i],end=" ")
    i += 1
print()

my name is zjh 

(2)增加元素,append, extend, insert

    append直接将新元素整体添加到列表末尾。

    extend(seq),sep元素列表,用于将元素逐一添加到列表中。

    insert(index,obj)在指定位置插入元素obj。

>>> a = [1,2]
>>> b = [3,4]
>>> a.append(b)
>>> a
[1, 2, [3, 4]]
>>> a.extend(b)
>>> a
[1, 2, [3, 4], 3, 4]

>>> a = [1,2,3,4]
>>> a.insert(2,'b')
>>> a
[1, 2, 'b', 3, 4]

(3)修改元素

    元素修改时需要通过下标来修改指定的元素。

>>> a = ['shanghai','beijing','shenzhen','guangzhou']
>>> a[3] = 'wuhan'
>>> a
['shanghai', 'beijing', 'shenzhen', 'wuhan']

(4)删除元素

   del:根据小标删除元素

   pop: 删除最后一个元素

   remove: 根据元素的值删除

['shanghai', 'beijing', 'shenzhen', 'wuhan']
>>> del a[0]
>>> a
['beijing', 'shenzhen', 'wuhan']
>>> a.pop()
'wuhan'
>>> a
['beijing', 'shenzhen']
>>> a.remove('shenzhen')
>>> a
['beijing']

(5)查询元素

    Python中常用的方法:in 、not in、index、count。

    in  如果存在就返回True,否则返回False

    not in 如果不存在就返回True,否则返回False

>>> slist = ['a','b','c','d']
>>> "c" in slist
True
>>> "D" in slist
False

  index 如果存在就返回位置,否则返回异常

  count 如果存在就返回个数,否则返回0

>>> slist = ['a','b','c','d']
>>> slist.count('a')
1
>>> slist.count('c')
1
>>> slist.count('F')
0

元组

元组用小括号表示,和列表类似,只不过元组是不可修改类型。不支持添加、修改,但是可以访问。元组能够合并另一个元组。

>>> mTuple = ('hello',1,55)
>>> type(mTuple)
<class 'tuple'>
>>> mTuple[0]
'hello'
>>> mTuple.index(1)
1
>>> mTuple.count(55)
1

字典

字典使用大括号表示,能够存储多个数据,数据用键-值对表示{key:value}。例如 info = {'name':'小周', 'id':100, 'sex':'f', 'address':'魔都'}

(1)根据键访问值(访问不存在的键将报错)

info = {'name':'小周', 'id':100, 'sex':'f', 'address':'魔都'}
print("姓名:%s"%info['name'])
age = info.get('age',18) # 若info中不存在'age'这个键,就返回默认值18
print("小周年龄:%d"%age)

姓名:小周
小周年龄:18

(2)修改元素

   字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改。

info['id'] = 66
print("修改之后的id=%d"%info['id'])

输出:修改之后的id=66

(3)添加元素

info['education'] = '大学'
print("添加新元素:%s"%info['education'])

输出:添加新元素:大学

(4)删除元素

del info['sex']  #根据指定key删除
print('删除sex:%s'%info)
info.clear()       #清空整个字典
print('清空字典:%s'%info)

删除sex:{'address': '魔都', 'education': '大学', 'id': 66, 'name': '小周'}
清空字典:{}

(5)字典常见操作

>>> info = {"name": "jinjin","address":"jingzhou"}
>>> info.keys()
dict_keys(['address', 'name'])
>>> list(info.keys())    #返回所有字典KEY列表
['address', 'name']
>>> list(info.values())  #返回所有value列表
['jingzhou', 'jinjin']
>>> list(info.items())   #返回一个包含所有(key,value)元组的列表
[('address', 'jingzhou'), ('name', 'jinjin')]
>>> len(info) #获取字典键值对个数
2

注:python3 中info.keys()返回的是一个dict_keys()对象,所以要将其转换为list;Python2中info.keys()直接返回的是列表。

遍历

通过for ... in ...:的语法结构,可以遍历字符串、列表、元组、字典等数据结构。

mystr = "hello world"
print("字符串遍历:%s"%mystr)
for char in mystr:
    print(char,end = " ")
print()

list1 = ["jin",1,2,3]
print("列表遍历:%s"%list1)
for i in list1:
    print(i,end=" ")
print()

Tuple = ("haa",1,3,5,7)
print("元组遍历:",end="")
print(Tuple)
for tu in Tuple:
    print(tu,end=" ")
print()

dic = {"name":"xiaoxiao","age":18}
print("遍历字典:%s"%dic)
for key in list(dic.keys()):
    print(key,end=" ")
print()

for value in list(dic.values()):
    print(value,end= " ")
print()

for item in list(dic.items()):
    print(item,end= ",")
print()

for key,value in list(dic.items()):
    print("key=%s, value=%s"%(key,value))
print()

输出:
字符串遍历:hello world
h e l l o   w o r l d 
列表遍历:['jin', 1, 2, 3]
jin 1 2 3 
元组遍历:('haa', 1, 3, 5, 7)
haa 1 3 5 7 
遍历字典:{'name': 'xiaoxiao', 'age': 18}
name age 
xiaoxiao 18 
('name', 'xiaoxiao'),('age', 18),
key=name, value=xiaoxiao
key=age, value=18

公共方法

 注:in在操作对象是字典时,判断的是key

内置函数

 

posted @ 2018-11-24 13:56  今生遇见前世  阅读(222)  评论(0编辑  收藏  举报