Python之列表、元组、字典、集合及字符串的详细使用

1、列表

  列表相当与C++中的数组,是有序的项目, 通过索引进行查找,但使用起来却方便很多,具体的操作看代码,自己实践一次就非常简单了。

  注:列表一般用中括号“[ ]”

#列表(数组)
name_list = ['huahua','weiwei','jack','dabao']
name_list.append('wenyen')  # 在后面加一个元素
# 例如
name_list.insert(1,"jack")
name_list.count('jack')
name_list.index('jack')
name_list.remove('jack')  # 只能填真实的值,否则用del name_list[1]

name_list.pop()  # 删除最后一个
name_list.reverse()  # 倒序 
name_list.sort()  # 按asc2码来排序
# 例如
num_list = ['a','b','c','d']
name_list, num_list

name_list.extend(num_list)  # 扩展列表 相当于name_list += num_list
name_list[2:5]  # 切片,顾头不顾尾
name_list[-5:]  # 从后往前取,:后面什么都不加表示取到最后一个数
name_list[name_list.index('a'):name_list.index('a')+3]
name_list[1::3]  # 从第一个开始取,隔两个取一个

2、元组

  元组是将多样的对象集合到一起,不能修改,通过索引进行查找;元组的主要特性就是不可修改,相当于常量,是作为一个整体使用的。

  注:元组一般用括号“( )”

    元组和列表可以实现互相转换,如下

#元组(相当于常量不可修改)用()的叫元组用[]的叫列表
a = (1,2,3,4)#元组和列表的互相转换
type(a)
a = list(a)
type(a)
a = tuple(a)
type(a)

3、字典

  字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序

  注:使用大括号”{}”

# 字典(所有的key必须是唯一的)用{}
person_info = {"name": "vivi", 'age': '18', 'job': 'engineer'}
person_info['salary'] = 300000  # 新增
person_info['job'] = 'it'  # 更改
person_info.pop('salary')  # pop可指定删除
person_info.popitem()  # popitem不指定就随机删除一个(因为字典没有数据)
person_info.get('name')  # 有这个key就返回值,没有就返回none,不像【】一样会报错
person_info.has_key('job')  # 判断是否有这个key,没有则可以写入
person_info.keys()  # 只显示key
person_info.setdefault('gentle', 'male')  # 设置默认值,有则不变,没有加入

new_info = {'age': 19, 'addr': ['wuhan', 'beijing']}
person_info.update(new_info)  # 把新字典更新到老的字典中

print person_info['name']  # 在文件中要用print才有输出
print person_info.items()  # items默认会把索引和值都打出来(以列表的形式)
print person_info

  注:以下是关于字典的两种循环

for i in person_info:  # 效率高
    print i, person_info[i]

for k, v in person_info.iteritems():  # 先以列表的额形式打印出来再进行循环,效率低
    print k, v

4、集合

  集合是无序的,自动去重,不支持索引但可以进行关系测试

  注:集合用“{}”表示

# 集合 (无序 自动去重,关系测试,不支持索引) 用{}
a = range(50)
a = set(a)
a.add(-1)
a.pop()

print a

x = {1, 2, 3, 4}
y = {3, 4, 5, 6}
print x & y
print x | y
print x - y
print x ^ y

5、字符串

  字符串其实不属于基本结构啦,只是懒得单独拎出来写了~

#字符串
msg = "what's your company's name?"
msg = msg.capitalize()
msg = msg.upper()
msg = msg.lower()
msg += ' WEIWEI'  # 这个操作要重新开辟两次内存空间,用join就只需要开辟一次
msg = msg.swapcase()
msg_list = msg.split()  # 默认是以空格作为分隔,组成一个列表(可以自己设定)string转化为list
'hhhhhhhhh'.join(msg_list)  # 列表转换为字符串的完形填空~list转换为string

msg

msg.startswith('WHAT')
len(msg)

cmp('a', 'b')  # 小于为-1
cmp('b', 'a')  # 大于为1
cmp('a', 'a')  # 等于为0

ord('h')  # 问asc2码

  以上是我自己看书查资料总结的一些比较常用的命令,比较乱啦,但因为这是之前写的笔记就懒得改了,其实copy到电脑里面运行一下所有命令的意思就很明朗了~一点自己的经验~