⑴ python中创建字典的几种方法总结
1.传统的文字表达式:
>>>d={'name':'Allen','age':21,'gender':'male'}
>>>d
{'age':21,'name':'Allen','gender':'male'}
如果你可以事先拼出整个字典,这种方式是很方便的。
2.动态分配键值:
>>>d={}
>>>d['name']='Allen'
>>>d['age']=21
>>>d['gender']='male'
>>>d
{'age':21,'name':'Allen','gender':'male'}
如果你需要一次动态地建立一个字典的一个字段,那么这种方式比较合适。
字典与列表不同,不能通过偏移量进行复制,只能通过键来读取或赋值,所以也可以这样为字典赋值,当然访问不存在的键会报错:
>>>d[1]='abcd'
>>>d
{1:'abcd','age':21,'name':'Allen','gender':'male'}
>>>d[2]
Traceback(mostrecentcalllast):
File"<pyshell#9>",line1,in<mole>d[2]
KeyError:212345678
3.字典键值表
>>>c=dict(name='Allen',age=14,gender='male')
>>>c
{'gender':'male','name':'Allen','age':14}
因为这种形式语法简单,不易出错,所以非常流行。
这种形式所需的代码比常量少,但是键必须都是字符串才行,所以下列代码会报错:
>>>c=dict(name='Allen',age=14,gender='male',1='abcd')
SyntaxError:keywordcan'tbeanexpression
4.字典键值元组表
>>>e=dict([('name','Allen'),('age',21),('gender','male')])
>>>e
{'age':21,'name':'Allen','gender':'male'}
如果你需要在程序运行时把键和值逐步建成序列,那么这种方式比较有用。
5.所有键的值都相同或者赋予初始值:
>>>f=dict.fromkeys(['height','weight'],'normal')
>>>f
{'weight':'normal','height':'normal'}
⑵ Python其实很简单 第十章 字典与集合
前面介绍的列表和元组都是有序序列,而字典与集合属于无序序列,也就是说,不能通过索引来操作元素。
10.1 字典
语法格式:
dictionary= {key1 : value1, key2 : value2, key3 : value3 ,...., key n : value n }
其中,dictionary是字典名称,key表示元素的键,value表示元素的值,键和值必须是成对的。
如:
>>> dict1 = { 'abc': 123, 98.6: 37 }
>>> dict1
{'abc': 123, 98.6: 37}
可以看出,键可以是字符串、数字或者元组,但必须是唯一的;而值可以是任何数据类型,也没有要求是唯一的。
1、创建字典的方法
方法一:同时给定键和值,即“关键字参数”形式。
dictionary=dict(key1=value1,key2=value2,.....,key n=value n)
注意:这里的key 必须符合Python标识符的命名规则。
例:
先使用“{}”创建字典:
>>> dict1={1:'一',2:'二',3:'三',4:'四',5:'五'}
>>> dict1
{1: '一', 2: '二', 3: '三', 4: '四', 5: '五'}
再通过“关键字参数”形式创建:
>>> dict1=dict(1='一',2='二',3='三',4='四',5='五')
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
创建不成功,原因在于key 不符合Python标识符的命名规则。前面已经介绍过,标识符不能用数字表示或者用数字打头。
现在对键如下修改:
>>> dict1=dict(n1='一',n2='二',n3='三',n4='四',n5='五') #在数字前加了一个字符”n”
>>> dict1
{'n1': '一', 'n2': '二', 'n3': '三', 'n4': '四', 'n5': '五'}
方法二 :使用已经存在的元组和列表通过映射函数创建字典。
格式:dictionary=dict(zip(tuplekey,listvalue))
例:
>>> tuplekey=('n1','n2','n3','n4','n5') #键的序列采用元组
>>> listvalue=['一','二','三','四','五'] #值的序列采用列表
>>> dict1=dict(zip(tuplekey,listvalue))
>>> dict1
{'n1': '一', 'n2': '二', 'n3': '三', 'n4': '四', 'n5': '五'}
注意:tuple(listname)函数可以将列表转换为元组,list(tuplename)函数可以将元组转换为列表。
2、通过键访问字典
直接获取键的相应元素的值
>>> dict1['n2']
'二'
利用get()方法
>>> dict1.get('n2')
'二'
get()方法也可以带参数,当要访问的键不存在时返回一个字符串。如:
>>> dict1.get('n0','can't find!') #当要查找的键不存在,返回'can't find!'
"can't find!"
3、遍历字典
使用字典对象的items()方法可以获取字典的“键.值对”列表。
>>> for item in dict1.items():
print(item)
('n1', '一')
('n2', '二')
('n3', '三')
('n4', '四')
('n5', '五')
也可以获取具体的每个元素的键和值,如:
>>> for key,value in dict1.items():
print(key,'对应的是',value)
n1 对应的是 一
n2 对应的是 二
n3 对应的是 三
n4 对应的是 四
n5 对应的是 五
4、添加、修改和删除字典元素
使用下面的语句,若指定的键存在,就可以修改该元素的值;若指定的键不存在,则添加该元素。如:
>>> dict1['n6']='六' # 键’n6’不存在,故添加该元素
>>> dict1
{'n1': '一', 'n2': '二', 'n3': '三', 'n4': '四', 'n5': '五', 'n6': '六'}
>>> dict1['n4']='肆' # 键’n4’存在,故修改该元素
>>> dict1
{'n1': '一', 'n2': '二', 'n3': '三', 'n4': '肆', 'n5': '五', 'n6': '六'}
5、利用推导式建立字典
import random
dict1={i:random.randint(1,100) for i in range(5)}
# 生成元素的键为0到5整数,值为1到100之间的随机数
print(dict1)
运行结果:{0: 28, 1: 59, 2: 79, 3: 30, 4: 88}
10.2 集合
集合是数学中一个很重要的概念,集合具有确定性、互异性、无序性三个基本属性。在Python中,集合同样具有这三个基本属性,其中,确定性是指对象要么是集合的元素,要么不是集合的元素;互异性是指集合中的元素不能重复;无序性是指集合中的元素不分先后次序,可以随意更换位置。
1、集合的创建
直接使用“{}”创建
>>> set1={'春','夏','秋','冬'}
>>> set1
{'秋', '春', '冬', '夏'}
>>> set2={3,2,1,4,5}
>>> set2
{1, 2, 3, 4, 5}
利用已有的列表、元组创建集合
>>> list1=['东','南','西','北']
>>> set3=set(list1)
>>> set3
{'南', '东', '北', '西'}
利用已有的集合建立一个“副本”
>>> set3
{'南', '东', '北', '西'} #set3和set4的值一样
>>> set4=set3
>>> set4
{'南', '东', '北', '西'}
>>> set4.add('中') #给set4添加元素
>>> set4
{'西', '中', '东', '南', '北'} # 这个好理解
>>> set3
{'西', '中', '东', '南', '北'} # 意想不到吧?Set3为什么会发生变化?
再看看简单变量的情况:
>>> a=2
>>> b=a #是不是与前面set4=set3相似
>>> b+=1
>>> b
3
>>> a
2 #但a的值并没有发生改变
从上面集合set3、set4和简单变量a、b的值的变化情况对比,不难发现set3和set4是指向同一地址的对象,而变量a和变量b指向了不同地址,语句b=a是将a的值传递个b,并不是将a的地址传递给b。列表、元组、字典都和集合一样具有这样的性质。
所以,将set4称为set3的“副本”更为恰当。
2、添加和删除元素
>>> set3
{'南', '东', '北', '西'}
>>> set3.add('中') # 添加元素
>>> set3
{'西', '中', '东', '南', '北'} # 集合内的元素是无序的,不要纠结次序的变化
>>> set3.remove('中') # 删除元素
>>> set3
{'西', '东', '南', '北'}
3、集合运算
集合运算包括交(&)、并(|)、差(-),和数学中的集合运算是一致的。
>>> set3={'南', '东', '北', '西'}
>>> set4={'西', '中', '东', '南', '北'}
>>> set3 & set4 #取set3和set4的交集
{'西', '南', '北', '东'}
>>> set3 | set4 #取set3和set4的并集
{'中', '南', '北', '西', '东'}
>>> set3 - set4 #取set3与set4的差,即set3比set4多出来的元素
set()
>>> set4 -set3 #取set4与set3的差,即set4比set3多出来的元素
{'中'}
⑶ python创建一个可以储存学生名字的字典
1、写一个程序,任意输入学生的信息,形成字典后存于列表中。
2、学生的信息包括姓名(字符串),年龄(整数),成绩(整数),循环输入学生信息,输入学生姓名为空时结束输入,形成字典列表。
3、可以厅李修改和掘派删除学生成绩判伏贺。
4、实现打印菜单,提示选择对应的操作。
⑷ python中,怎么做个字典,数句子中单词出现的次数
text = raw_input("enter a sentence:")
words = text.split()
wordscount = [words.count(elem) for elem in words]
worddict={map(None,words,wordscount)}
要完成你的目标:
我要
计算每个词语出现的次数,
把词语出现的次数和词语列表组合成字典;
伪代码出来了,程序也就有了....
python有着强大的列表解析,内建模块使用C完成,他们很快,所以能够调用内建模块你就不要自己多事。
尽量按照伪代码去完成程序,除非必须细化,否则让python为你操作低层吧,他很聪明
第三句释义:
对于列表元素计数有很简单的list.count()方法。
这个语句就是利用了这个,statement for element in list fileter expression这是list的解析式。
通过这个你可以方便的将一个list解析为另一个。这一句就对list中所有的元素运用count()方法,并且建立新的list。
另外一个例子:a=[2,3,4,7,8]找到这个list中的偶数,并得到它们的平方列表
这样写:[elem*elem for elem in a if elem%2==0]
第四句释义:
list有个map方法,它可以提供list的映射。map(statement,list1,list2)就是将list1,list2按照statement规则映射。我的表达式是none所以得到的结果就是简单的[('this', 3), ('is', 4), ('a', 1)]这样的二元tuple列表。
dict函数则是针对上述list的。它能把上述list转化为字典。
这在你做数据处理时很有好处,你可以很轻松的建立一个hash表。
python的强大在于简明,遇到程序尝试着用最简单地方法去解决,你会很快喜欢上的。
以上^乐于与您交流
⑸ python字典如何添加字典
python字典添加字典的方法:
1、首先建立一个新的字典
2、调用updata()函数,把新字典里面的键值对更新到dict里
3、打印dict,字典添加成功。
结果如下
⑹ python中字典的定义
python中字典的定义:字典是python中的一种内置的数据类型,它是肆锋一个无序的键值对(key-value)的集合,键和值可以是任何数据类型。
拓展:字典郑侍的键必须是唯一的,即每个键只能映射到一个值。通过使用字典,我们可以存储任意类型的数据,比如数字、字符串、列表、元组等喊雹吵。字典也可以嵌套,即字典中可以包含其他字典。
⑺ 如何创建字典和给字典赋值
创建字典只需要把字典赋值给一个变量,不管这个字典是否包含元素:
>>> dict1 = {}
>>> dict2 = {'name': 'earth', 'port': 80}
>>> dict1, dict2
({}, {'port': 80, 'name': 'earth'})
从Python 2.2 版本起, 可以用工厂方法 dict() 来创建字典。 当我们详细讨论dict()的时候
会看到更多的例子,现在来看一个小例子:
>>> fdict = dict((['x', 1], ['y', 2]))
>>> fdict
{'y': 2, 'x': 1}
从Python 2.3 版本起, 可以用一个很方便的内建方法fromkeys() 来创建一个"默认"字典, 字
典中元素具有相同的值 (如果没有给出, 默认为None):
>>> ddict = {}.fromkeys(('x', 'y'), -1)
>>> ddict
{'y': -1, 'x': -1}
>>>
>>> edict = {}.fromkeys(('foo', 'bar'))
>>> edict
{'foo': None, 'bar': None}