站长资讯网
最全最丰富的资讯网站

Linux之python中的列表 元组 字典 集合 与 常用的内置方法

file: day03_创建列表.py
date: 2018-08-29 9:06 AM
author: westos-dd
desc:
数组:存储同一种数据类型的集合 scores=[12,13,14]
列表:(打了激素的数组):可以存储任意数据类型的集合
"""
"""

In [1]: name1 = 'tom'

In [2]: name2 = 'lily'

In [3]: name3 = 'bob'

In [4]: name4 ='coco'

In [5]: name1
Out[5]: 'tom'

In [6]: name2
Out[6]: 'lily'

In [7]: name3
Out[7]: 'bob'

In [8]: name = ['tom','lily','bob','cooc']

In [9]: name
Out[9]: ['tom', 'lily', 'bob', 'cooc']

In [10]: type(name)
Out[10]: list

一个变量存储多个信息
"""

# 列表里:可以存储不同的数据类型
li = [1,1.2,True,'hello']
print li
print type(li)

# 列表里面也可以嵌套列表(列表:也是一种数据类型)
li = [1,1.2,True,'hello',[1,2,3,4,5]]
print li
print type(li)

file: day03_列表的特性.py
date: 2018-08-29 9:12 AM
author: westos-dd
desc:

"""
service = ['http', 'ssh', 'ftp']

# # 索引
# print service[0]
# print service[-1]
# # 切片
# print service[::-1] # 列表的翻转
# print service[1:] # 除了第一个元素之外的其他元素
# print service[:-1] # 除了最后一个元素之外的其他元素
# # 重复
# print service * 3
# # 连接
# service1 = ['mysql','firewalld']
# print service + service1
# # 成员操作符
# print 'firewalld' in service
# print 'firewalld' in service1
# print 'firewalld' not in service
# for循环遍历
# print '显示服务'.center(50,'*')
# for se in service:
# print se

# 列表里嵌套列表
service2 = [['http',80],['ssh',22],['ftp',21]]
# 索引
print service2[0][1]
print service2[-1][1]
# 切片
print service2[:][1]
print service2[:-1][0]
print service2[0][:-1]

file: day03_列表的增加.py
date: 2018-08-29 9:48 AM
author: westos-dd
desc:

"""
service = ['http', 'ssh', 'ftp']

# 1.
print service + ['firewalld']

# 2.append:追加 追加一个元素到列表中
service.append('firewalld')
print service

# 3.extend:拉伸 追加多个元素到列表中
service.extend(['mysql', 'firewalld'])
print service

# 4. insert:在指定索引位置插入元素
service.insert(1,'samab')
print service

file: day03_列表的删除.py
date: 2018-08-29 9:55 AM
author: westos-dd
desc:

"""
service = ['http', 'ssh', 'ftp']

# #1.如果pop()不传递值的时候,默认弹出最后一个元素
# print service.pop()
# # pop()也可以传递索引值
# print service.pop(0)

# 2.remove:删除指定的元素
# service.remove('ssh')
# print service

# 3.del 关键字 从内存中删除列表
# print service
# del service
# print
# service

file: day03_列表的查看.py
date: 2018-08-29 10:15 AM
author: westos-dd
desc:

"""
service = ['http', 'ssh', 'ftp','ftp']

# 查看列表中元素出现的次数
print service.count('ssh')

# 查看指定元素的索引值
print service.index('ssh')

file: day03_列表的修改.py
date: 2018-08-29 10:02 AM
author: westos-dd
desc:

"""
service = ['http', 'ssh', 'ftp']

# 通过索引,重新赋值
service[0] = 'mysql'
print service

# 通过切片
print service[:2]
service[:2] = ['samba','ladp']
print service

file: day03_列表的排序.py
date: 2018-08-29 10:18 AM
author: westos-dd
desc:

"""
# service = ['http', 'ssh', 'ftp','ftp']
#
# # 按照Ascii码进行排序的
# service.sort()
# print service
#
# service.sort(reverse=True)
# print service

# phones = ['bob', 'harry', 'Lily', 'Alice']
# # phones.sort()
# # 对字符串排序不区分大小写
# #phones.sort(key=str.lower)
# phones.sort(key=str.upper)
# print phones

import random
li = list(range(10))
print li
# 将原有的列表顺序打乱
random.shuffle(li)
print li

列表练习:

1…..假定有下面这样的列表:
names = ['fentiao', 'fendai', 'fensi', 'apple']
输出结果为:'I have fentiao, fendai, fensi and apple.'

"""
names = ['fentiao', 'fendai', 'fensi', 'apple']
print 'I have ' + ','.join(names[:-1]) + ' and ' + names[-1]

file: day03_列表练习题_后台管理前台会员信息.py
date: 2018-08-29 10:16 AM
author: westos-dd
desc:
1.后台管理员只有一个用户:admin 密码:admin
2.当管理员登陆成功后,才可以管理用户信息
3.管理用户信息包含
添加用户信息
删除用户信息
查看用户信息
退出
"""
print '管理员登陆'.center(50, '*')
inuser = raw_input('UserName:')
inpasswd = raw_input('Password:')

# 现存用户名
users = ['root', 'westos']
# 现存用户密码
passwds = ['123', '456']

if inuser == 'admin' and inpasswd == 'admin':
print '管理员登陆成功'
print '用户信息管理'.center(50, '*')
while True:
print """
1 -添加用户信息
2 -删除用户信息
3 -查看用户信息
4 -退出

"""
choice = raw_input('请选择你的操作:')
if choice == '1':
print '添加用户信息'.center(50, '*')
addUser = raw_input('添加用户:')
if addUser in users:
print '用户%s已经存在' % addUser
else:
addPasswd = raw_input('密码:')
# 把用户名和密码添加到列表中
users.append(addUser)
passwds.append(addPasswd)
print '添加用户%s成功' %addUser

elif choice == '2':
print '删除用户信息'.center(50,'*')
delUser = raw_input('删除的用户:')
delIndex = users.index(delUser)
users.remove(delUser)
passwds.pop(delIndex)
print '删除用户%s成功' %delUser

elif choice == '3':
print '查看用户信息'.center(50,'*')
print 't用户名t密码'
userCount = len(users) #2
for i in range(userCount): # 0 ,1
print 't%st%s' %(users[i],passwds[i])

elif choice == '4':
exit()
else:
print '请输入正确的选择'
else:
print '管理员登陆失败!'

file: day03_列表练习题_用户管理系统1.0.py
date: 2018-08-29 10:16 AM
author: westos-dd
desc:
1.系统里面有用户 用户有密码
users = ['root','westos']
passwds = ['123','456']
2.用户登陆(判断用户登陆是否成功)
1).判断用户是否存在
2).如果存在:
判断用户密码是否正确:先找出用户对应的索引,
根据passwds[索引值]
如果正确:登陆成功,退出循环
如果密码不正确:重新登陆 (机会只有三次)
2).不存在
重新登陆(机会只有三次)
"""
users = ['root', 'westos']
passwds = ['123', '456']
trycont = 0
# 尝试登陆的次数
while trycont < 3:
inuser = raw_input('用户名:')
inpasswd = raw_input('密码:')
# 尝试次数+1
trycont += 1
if inuser in users:
# 判断用户密码是否正确
index = users.index(inuser) # 先找用户对应的索引值
passwd = passwds[index]
if inpasswd == passwd:
print '%s 登陆成功' % inuser
break
else:
print '%s 登陆失败' % inuser
else:
print '用户%s 不存在' % inuser
else:
print '三次机会已经用完'

file: day03_华为笔试编程题目.py
date: 2018-08-29 3:31 PM
author: westos-dd
desc:
华为机测题:
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性
他先用计算机生成了N个1~1000之间的随机整数(N<=1000),N是用户输入的,对于
其中重复的数字,只保留一个,把其余相同的数字去掉,不同的数对应着不同的学生的学号,然后再把这些
数从小到大排序,按照排好的顺序去找同学做调查,请你协助明明完成“去重”与排序工作
"""
import random
# 先 生成n个随机数
# 优先选择集合
s = set([])
for i in range(int(raw_input('N:'))):
# num = random.randint(1,1000)
# s.add(num)
s.add(random.randint(1,1000))
print s
print sorted(s)

file: day_元组的创建.py
date: 2018-08-29 2:19 PM
author: westos-dd
desc:
元组(tuple):带了紧箍咒的列表
元组本身不可变数据类型,没有增删改差
元组内可以存储任意数据类型
"""
t = (1,2,3,4.0,'star')
print t,type(t)

# 元组里面包含可变数据类型,可以间接修改元组的内容
t1 = ([1,2,3],4)
t1[0].append(4)
print t1

# 元组如果只有一个元素的时候,后面一定要加逗号,否则数据类型不确定
t2 = ('hello',)
t3 = (1,)
print type(t2),type(t3)

file: day03_元组的特性.py
date: 2018-08-29 2:26 PM
author: westos-dd
desc:

"""
allowUsers = ('root','westos','fentiao')
allowPasswd = ('123','456','789')

# 索引 # 切片
print allowUsers[0]
print allowUsers[-1]
print allowUsers[1:]
print allowUsers[2:]
print allowUsers[:-1]
print allowUsers[::-1]

# 重复
print allowUsers * 3
# 连接
print allowUsers + ('fensi','fendai')
# 成员操作符
print 'westos' in allowUsers
print 'westos' not in allowUsers

file: day03_元组的应用场景.py
date: 2018-08-29 2:38 PM
author: westos-dd
desc:

"""
# 1.变量交换数值
# a = 1
# b = 2
# b,a = a,b
# # 先把(a,b)封装成了一个元组(1,2)
# # b,a = a,b
# # b =(1,2)[0] a=(1,2)[1]
# print a,b

# 2.打印变量值
# name = 'westos'
# age = 10
# t = (name,age)
# print 'name: %s,age: %d' %(name,age)
# print 'name: %s,age: %d' %t

# 3.元组的赋值:有多少个元素,就用多少个变量接收
# t = ('westos',10,100)
# name,age,score = t
# print name,age,score

scores = (100,89,45,78,65)
# scoresLi = list(scores)
# scoresLi.sort()
# print scoresLi
scores = sorted(scores)
print scores

file: day03_集合的定义.py
date: 2018-08-29 2:59 PM
author: westos-dd
desc:

"""
# 集合里面的元素是不可重复的
s = {1,2,3,1,2,3,4,5}
print s,type(s)
s1 = {1}
print s1,type(s1)
# 如何定义一个空集合
# s2 = {}
# print type(s2)
s3 = set([])
print s3,type(s3)

# 集合的应用
li = [1,2,3,1,2,3]
print list(set(li))

file: day03_集合的特性.py
date: 2018-08-29 3:10 PM
author: westos-dd
desc:
集合只支持 成员操作符 for循环

"""
s = {1,2,3}
#print s[0]
# print s * 3
# print s + {5,4,6}
print 1 in s
for i in s:
print i,
for i,v in enumerate(s):
print 'index: %s,value:%s' %(i,v)

file: day03_集合常用的方法.py
date: 2018-08-29 3:31 PM
author: westos-dd
desc:

"""
s = {6, 7, 8, 1, 2, 3}
# 增加
# s.add(10)
# s.add(9)
# print s
# 增加多个元素
# s.update({4,5})
# print s
# 删除
# print s
# s.pop()
# print s
# 删除指定的元素
# s.remove(2)
# print s

# 交集 并集 差集
s1 = {1, 2, 3}
s2 = {2, 3, 4}

# 并集
print '并集:', s1.union(s2)
print '并集:', s1 | s2

# 交集
print '交集:', s1.intersection(s2)
print '交集:', s1 & s2

# 差集
# 可以理解为s1中有哪些s2中没有的元素
print '差集:', s1.difference(s2) # s1-(s1&s2)
print '差集:', s1 – s2
# 可以理解为s2中有哪些s1中没有的元素
print '差集:', s2.difference(s1) # s2-(s1&s2)
print '差集:', s2 – s1

# 对等差分:并集-交集
print '对等差分:', s1.symmetric_difference((s2))
print '对等差分:', s1 ^ s2

s3 = {1, 2}
s4 = {1, 2, 3}

# s3是否为s4的子集
print s3.issubset(s4)
# s3是否为s4的超集
# 什么是超集:如果s3中的每一个元素都在集合s4中,且
# s4中可能包含s3中没有的元素,则s3就是s4的一个超集
print s3.issuperset(s4)

# 两个集合是不是不相交
print s3.isdisjoint(s4)

file: day03_字典的定义.py
date: 2018-08-29 4:20 PM
author: westos-dd
desc:
name :小明
age : 18
height:180
"""
"""
字典是一个无序的数据集合,使用print输出字典的时候
通常输出的顺序和定义的顺序是不一致的
# """
# message = {
# 'name':'tom',
# 'age':18,
# 'height':1.80,
# 'weight':75.5
# }
# print message
# s = {}
# print type(s)
# s = {
# 'fentiao':[100,90,80],
# 'westos':[199,199,199]
# }
# print s

d = dict()
print d,type(d)

d = dict(a=1,b=2)
print d,type(d)

file: day03_字典的特性.py
date: 2018-08-29 4:28 PM
author: westos-dd
desc:

"""
d = dict(a=1,b=2)

print d

# 成员操作符(默认判断key值是否存在)
print 'a' in d
print 1 in d

# for循环(默认循环遍历字典的key值)
for i in d:
print i

file: day03_字典的增加.py
date: 2018-08-29 4:31 PM
author: westos-dd
desc:

"""
d = dict(a=1, b=2)
# print d
# # 添加或者更改key-value对
# d['g'] = 10
# print d
# d['a'] = 10
# print d
"""
update:
如果key值存在,更新value值
如果key值不存在,添加key-value值
"""
# d.update({'a':4,'f':1})
# print d

"""
setdefault
如果key值已经存在,不做修改
如果key值不存在,添加key-value值
"""
d.setdefault('a',10)
print d

file: day03_字典的删除.py
date: 2018-08-29 4:36 PM
author: westos-dd
desc:

"""
d = dict(a=1, b=2,c=3)
# pop:弹出指定的key-value值
# d.pop('a')
# print d
# print d
# d.popitem()
# print d

del d['a']
print d

file: day03_字典的修改与查看.py
date: 2018-08-29 4:40 PM
author: westos-dd
desc:

"""
service = {
'http':80,
'mysql':3306
}

# 查看字典里面所有的key值
print service.keys()

# 查看字典里面所有的value值
print service.values()

# 查看字典里面所有的key-value值
print service.items()

# 遍历
for k,v in service.items():
print k,'—->',v

for k in service:
print k,'—–>',service[k]

# print service['https']
# if 'https' in service:
# print service['https']
# else:
# print 'key not exist'

"""
get方法获取指定key对应的value值
如果key值存在,返回对应的value值
如果key值不存在,默认返回None,如果需要指定返回值,传值即可
"""
print service.get('http','key not exist')

file: day03_字典练习.py
date: 2018-08-29 4:41 PM
author: westos-dd
desc:
# 重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;
# 1. 用户输入一句英文句子;
# 2. 打印出每个单词及其重复的次数;
"hello java hello python"
# hello 2
# java 1
# python 1
"""
s = raw_input('s:')

# 1.把每个单词分割处理
s_li = s.split()
print s_li

# 2.通过字典存储单词和该单词出现的次数
words_dict = {}

"""
依次循环遍历列表
如果列表元素不在字典的key中,将元素作为key 1作为valus值
如果列表元素在字典的key中,直接更新元素value值,在原有的基础上加1
"""
for item in s_li:
if item not in words_dict:
words_dict[item] = 1
else:
words_dict[item] += 1

# 4.打印生成的字典
print words_dict

file: day03_字典练习02.py
date: 2018-08-29 4:42 PM
author: westos-dd
desc:
# 数字重复统计:
1). 随机生成1000个整数;
2). 数字的范围[20, 100],
3). 升序输出所有不同的数字及其每个数字重复的次数;
"""
import random

# 1.随机生成1000个整数
all_nums = []
for item in range(1000):
# 2.数字的范围
all_nums.append(random.randint(20, 100))

# 3.升序输出所有不同的数字及其每个数字重复的次数
sorted_num = sorted(all_nums)

nums_dict = {}
for num in sorted_num:
if num in nums_dict:
nums_dict[num] += 1
else:
nums_dict[num] = 1

print nums_dict

file: day03_python中常用的内置方法.py
date: 2018-08-29 3:13 PM
author: westos-dd
desc:

"""
# 枚举:返回索引值和对应的value值
# s = 'hello'
# for i in s:
# print i
# for i,v in enumerate('hello'):
# print i
# print type(i)
# print v
# print type(v)
# print str(i) + '—->' + v

# s1 = 'abc'
# s2 = '123'
#
# for i in zip(s1,s2):
# #print i
# print '-'.join(i)

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号