groupList = new Dictionary<string,Dictionary<string, string>>()
groupList.Add("群组1",new Dictionary<string,string>())
groupList.Add("群组2",new Dictionary<string,string>())
...
groupList["群组1"].Add(“联系人11","电话11")
groupList["群组1"].Add(“联系人12","电话12")
groupList["群组1"].Add(“联系人13","电话13")
..
groupList["群组2"].Add(“联系人21","电话21")
groupList["群组2"].Add(“联系人22","电话22")
groupList["群组2"].Add(“联系人23","电话23")
...
ListBox.DataSource = groupList.Keys
ListBox.DataBind()
ListBox.OnSelectedIndexChange = new EventHandler(ListBoxSelectedChange)
protected void ListBoxSelectedChange(object sender,EventArg e)
{
ListView.DataSource = groupList[ListBox.SelectedItem.Value]
ListView.DataBind()
}
protected void Add联系人(object sender,EventArgs e)
{
groupList[ListBox.SelectedItem.Value].Add(姓名Control.Text,联系电话Control.Text)
ListBoxSelectedChange(sender,e)
}
方法:del dict2['name']#删除键为“name”的条目。
dict2.clear()#删除 dict2 中所有的条目
del dict2#删除整个 dict2 字典
dict2.pop('name')#删除并返回键为“name”的条目!
实际上各种推导式的本质就是for循环, 它们之间的区别只是取值方式的不同和表达式的不同首先, 字典的取值方式有两种: 按key取值, 使用get方法取值
其次, 字典推导式的表达式部分需要写成 key:value 的形式
如果要使用字典推导式推导一个嵌套字典
例如:
infos = {"张三":{ "age":18, "salary":5000},
"李四":{"age":19, "salary":8000},
"王五":{ "age":20, "salary":6000}}
要从infos这个嵌套的字典中推导出一个形如{"张三":5000, "李四":8000, "王五":6000}的字典
首先可以考虑最内层的推导式:
names = [name for name in infos]
这样就得到了一个姓名的列表: ["张三", "李四", "王五"]
再迭代这个列表, 生成字典的每一项, 于是字典生成式应该像下面这样:
salary_dict = {name:薪资 for name in names}
在这里, 因为name正好是infos这个字典的key, 所以可以使用name从字典infos中取出对应的薪资, 于是有下面的形式:
salary_dict = {name:infos[name]["salary"] for name in names}
这里就用到的字典的用key取值的方式, 当然, 也可以用get方法取值, 例如下面的形式:
salary_dict = {name:infos.get(name).get("salary") for name in names}
这两种方式都是可以的, 根据个人喜好选择就好
为了显得逼格更高, 可以把names的列表推导式和salary_dict的字典推导式结合起来, 于是就得到下面的形式:
salary_dict = {name:infos[name]["salary"] for name in (name for name in infos)}
到这里, 你会发现表达式里有好多name, 显得非常重复, 实际上这里并不需要列表推导式, 直接从字典里迭代出来的key就是name了, 所以最终的形式如下:
salary_dict = {name:infos[name]["salary"] for name in infos}
这里为了得到一个比较简单的结果而绕了一个大圈子, 是为了说明更加通用方法, 对于这个例子, 很容易就能得出结果的哈
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)