# map()函数练习:提示用户从键盘录入一个英文名字,每录入一个,询问用户是否结束录入。 录入完毕,利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字,再输出显示。 例如输入:‘adam’, ‘LISA’, ‘barT’,输出:‘Adam’, ‘Lisa’, ‘Bart’ 提示:字符串的title()函数可以将首字母大写
时间: 2023-06-15 21:03:14 浏览: 116
可以按照以下代码实现:
```
names = []
while True:
name = input("请输入一个英文名字:")
names.append(name)
flag = input("是否结束录入?(y/n)")
if flag.lower() == 'y':
break
formatted_names = list(map(lambda x: x.title(), names))
print(formatted_names)
```
首先,我们定义一个空列表 `names`,用于存储用户输入的多个英文名字。接下来,我们使用一个循环来依次询问用户是否要继续输入,如果用户输入是 `y`,则继续录入,否则跳出循环。
在录入完成后,我们使用 `map()` 函数将每个英文名字转换为规范的格式。其中,我们使用了 `lambda` 表达式来定义一个函数,这个函数用于将每个英文名字的首字母大写,其他字母小写。最后,我们将转换后的名字列表打印输出。
值得注意的是,`map()` 函数返回的是一个迭代器,因此我们需要使用 `list()` 函数将其转换为列表,才能打印输出。
相关问题
如何使用C++将上星期的电话号码簿管理程序重构为函数形式?具体需求包括:创建一个用于录入信息并包含电话号码验证的函数,一个用于查询信息的函数,以及一个用于删除信息的函数。请确保这三个函数都能正常工作并经过调试。
在C++中,要将电话号码簿重构为函数形式,你需要定义三个主要的函数:`addContact`、`searchContact` 和 `deleteContact`。下面是一个简单的示例说明如何实现:
```cpp
#include <iostream>
#include <string>
#include <map> // 使用map存储电话簿,键为姓名,值为电话
class PhoneNumberBook {
private:
std::map<std::string, std::string> contacts; // 存储联系人及其电话
public:
// 函数:添加新的联系人
void addContact(const std::string& name, const std::string& phoneNumber) {
if (isValidPhoneNumber(phoneNumber)) { // 验证电话号码是否有效
contacts[name] = phoneNumber;
std::cout << "Contact added successfully.\n";
} else {
std::cout << "Invalid phone number. Skipping...\n";
}
}
// 函数:搜索特定联系人的电话
std::string searchContact(const std::string& name) const {
auto it = contacts.find(name);
if (it != contacts.end()) {
return it->second;
} else {
return "Contact not found.";
}
}
// 函数:删除指定联系人
bool deleteContact(const std::string& name) {
if (contacts.erase(name)) {
std::cout << "Contact deleted.\n";
return true;
} else {
std::cout << "Contact not found to delete.\n";
return false;
}
}
// 辅助函数:检查电话号码是否有效(这里简单地假设非空和数字组成)
static bool isValidPhoneNumber(const std::string& phoneNumber) {
return !phoneNumber.empty() && std::all_of(phoneNumber.begin(), phoneNumber.end(), ::isdigit);
}
};
int main() {
PhoneNumberBook book;
// 示例操作
book.addContact("Alice", "1234567890");
std::cout << "Phone for Alice: " << book.searchContact("Alice") << "\n";
if (book.deleteContact("Alice")) {
// ... 可能需要更新其他依赖于Alice的信息的地方
}
return 0;
}
```
记得对每个函数进行充分的测试以确保它们能在各种边界情况和异常输入下正常工作。这包括但不限于无效的电话号码、不存在的联系人名称等。
2、编程解决如下问题: (1)建立列表lst,由键盘输入该列表的n个成员,n的大小由录入者控制; (2)利用匿名函数和filter函数过滤掉其中的偶数,并将奇数保留在列表lst1中; (3)利用匿名函数和map函数,求出lst1中每一个成员的倒数,并将它们保存到列表lst2中; (4)分别输出lst,lst1,lst2。
可以使用以下代码来解决这个问题:
```python
# 步骤1:建立列表lst,由键盘输入该列表的n个成员,n的大小由录入者控制
n = int(input("请输入列表的大小:"))
lst = []
for i in range(n):
member = int(input(f"请输入第{i+1}个成员:"))
lst.append(member)
# 步骤2:利用匿名函数和filter函数过滤掉其中的偶数,并将奇数保留在列表lst1中
lst1 = list(filter(lambda x: x % 2 != 0, lst))
# 步骤3:利用匿名函数和map函数,求出lst1中每一个成员的倒数,并将它们保存到列表lst2中
lst2 = list(map(lambda x: 1 / x, lst1))
# 步骤4:输出lst,lst1,lst2
print("原始列表lst:", lst)
print("过滤后的奇数列表lst1:", lst1)
print("倒数列表lst2:", lst2)
```
你可以运行这段代码,并根据提示输入相应的值,代码会输出结果。
阅读全文