计算字典中键的字符数

时间:2016-10-05 18:15:52

标签: python dictionary count

对于家庭作业,我已经设置了以下内容:

使用myEmployees列表中的名称构建一个字典为 钥匙并为每位员工分配10 000的工资(作为价值)。循环在字典上 并增加名称超过四名的员工的工资 字母长度为1000 *。之前打印字典内容 并且在增加之后。

我无法弄明白该怎么做。

这是我到目前为止所提出的。

employeeDict = {"John":'10,000', "Daren":"10,000", "Graham":"10,000", "Steve":"10,000", "Adren":"10,000"}

say = 'Before increase'
print say
print employeeDict

say1 = 'After increase'
print say1

for x in employeeDict:
x = len(employeeDict)
if x > 5:
    print employeeDict[x]

4 个答案:

答案 0 :(得分:0)

显然,你有一些缩进问题,但主要的问题是你花了字典的长度(得到键的数量)没有占用密钥的长度。你也有一些不好的逻辑。

employeeDict = {"John":'10,000', "Daren":"10,000", "Graham":"10,000", "Steve":"10,000", "Adren":"10,000"}

say = 'Before increase'
print say
print employeeDict

say1 = 'After increase'
print say1

for x in employeeDict:
    length = len(employeeDict)  # <---- indent this
    if length >= 5:    # <--- greater than 4
        # convert string to number, add money, convert back to string
        employeeDict[x] = str(int(employeeDict[x]) + 1000 * (length))

print employeeDict[x]

答案 1 :(得分:0)

首先,将值更改为整数/浮点数。

employeeDict = {"John":10000, "Daren":10000, "Graham":10000, "Steve":10000, "Adren":10000}

执行此操作后,如您所知,您需要遍历dict中的项目。

for x in employeeDict:
    x = len(employeeDict)
    if x > 5:
        print employeeDict[x]

在上面的代码中,您的&#34; x&#34;将是员工姓名。如您所知,要将值赋值给dict中的键,您必须使用dict[key] = value,因此请尝试在if x > 5:块语句中执行此操作。我不是想给你完整的答案,而是要把你推向正确的方向。

答案 2 :(得分:0)

试一试并分析它:

employees = {"John":10000, "Daren":10000, "Graham":10000}

for name in employees:
    if len(name) > 5:
        employees[name] += 1000 * len(name)

如果你必须坚持使用字符串值,你可以这样做:

employees = {"John":"10000", "Daren":"10000", "Graham":"10000"}

for name in employees:
    if len(name) > 5:
        employees[name] = str(int(employees[name]) + 1000 * len(name))

答案 3 :(得分:0)

这应该可以满足您的需求。

employeeDict = {"John":10000, "Daren":10000, "Graham":10000, "Steve":10000, "Adren":10000}
print "Before increase"
print employeeDict

for name, salary in employeeDict.items():
    if len(name) > 4:
        employeeDict[name] = salary + len(name) * 1000
print "After increase"
print employeeDict

您的版本中存在一些问题。

  • 您对for循环的识别不正确
  • 你得到的是字典的长度,而不是 字典中<键>的长度。
  • 您应该使字典中的值浮点数/整数。

另请注意,我相信如果名称超过四个字符,您的作业将会显示。所以我使用了4而不是5。