中间有一段是这样的if str_list[i] != '*':
时间: 2024-03-23 18:44:03 浏览: 37
非常抱歉,我的回答有误。这里的判断条件应该是`str_list[i] == '*'`,而不是`str_list[i] != '*'`。因为我们要将所有星号移动到左侧,如果当前遍历到的字符不是星号,就不需要移动它。
以下是修正后的代码:
```python
def main():
stra = input()
lista = list(stra)
print(''.join(replace_stars(lista)))
def replace_stars(str_list):
# 将所有*号移动到数组的左侧
j = len(str_list) - 1
for i in range(len(str_list) - 1, -1, -1):
if str_list[i] == '*':
str_list.pop(i)
str_list.insert(0, '*')
return str_list
main()
```
这个程序的实现思路是,从后往前遍历字符串,如果遇到星号就把它移动到字符串的最左侧。最后返回移动后的字符串列表,并用`join()`函数将其转换为字符串输出。
相关问题
def loadJson(filename): ret_json = None try: with open(filename, "r") as json_file: ret_json = json.load(json_file) except Exception as e: print(f"Error while opening {filename}.\nerror message: {e}") return ret_json #json file로부터 읽어온다. def getUrls(json_dict, url_type:int = 0, max_len:int = -1): if url_type <0 or url_type >1: raise Exception("Invalid Parameter(url_type) Error!") if url_type == 0: ret_url_list = [obj['url'] for obj in json_dict] if url_type == 1: ret_url_list = [obj['url'] for obj in json_dict['_embedded']['phish']] if max_len != -1: if len(ret_url_list) > max_len: ret_url_list = ret_url_list[:max_len] random.shuffle(ret_url_list) return ret_url_list # input : filepath # output : url list def getUrls_f(_filenames, url_type: int = 0, max_len:int = -1): ret_url_list = [] if type(_filenames) == str: json_dict = loadJson(_filenames) ret_url_list = getUrls(json_dict, url_type, max_len) if type(_filenames) == list: for filename in _filenames: json_dict = loadJson(filename) ret_url_list.extend(getUrls(json_dict, url_type, max_len)) return ret_url_list
这段代码是一个用于从 JSON 文件中读取 URL 的函数。它包含两个函数,loadJson 和 getUrls。
loadJson 函数接受一个文件名作为参数,尝试打开该文件并将其解析为 JSON 数据。如果出现任何错误,它将打印错误信息并返回 None。否则,它将返回解析后的 JSON 数据。
getUrls 函数接受一个 JSON 字典、一个 url_type 参数和一个 max_len 参数。url_type 参数指定从 JSON 数据中提取 URL 的方式,0 表示直接从 JSON 数据中提取,1 表示从嵌入式 JSON 数据中提取。max_len 参数指定最多返回多少个 URL。如果未指定 max_len 或 max_len 为负数,则返回所有 URL。
getUrls_f 函数接受一个文件名列表、url_type 参数和 max_len 参数。它调用 loadJson 和 getUrls 函数以从所有文件中提取 URL,并将它们存储在一个列表中。然后,它返回该列表。
if len(round_camera_obj_list) != 0: for i in range(len(round_camera_obj_list)): if -5 < round_camera_obj_list[i]['d_y'] < 15: if -4 < round_camera_obj_list[i]['d_x'] < 0: side_safe_flag_list[1] = 0 else: side_safe_flag_list[1] = 1 if 0 < round_camera_obj_list[i]['d_x'] < 4: side_safe_flag_list[0] = 0 else: side_safe_flag_list[0] = 1 else: side_safe_flag_list[0] = 1 side_safe_flag_list[1] = 1 color_print_lib.prRed('front_veh: ' + str(front_veh)) color_print_lib.prRed('left_side_front_veh: ' + str(left_side_front_veh)) color_print_lib.prRed('right_side_front_veh: ' + str(right_side_front_veh)) front_veh_v = front_veh left_side_front_veh_v = left_side_front_veh right_side_front_veh_v = right_side_front_veh side_safe_flag_list_v = side_safe_flag_list return front_veh, left_side_front_veh, right_side_front_veh, side_safe_flag_list解释一下
这段代码是一个函数,它接受一个参数 round_camera_obj_list,然后对其进行处理,并返回四个值:front_veh、left_side_front_veh、right_side_front_veh 和 side_safe_flag_list。
在函数内部,首先判断 round_camera_obj_list 是否为空列表,如果不是,就对列表中的每个元素进行处理。对于每个元素,如果它的 d_y 值在 -5 到 15 之间,就会对 side_safe_flag_list 中的值进行修改。如果它的 d_x 值在 -4 到 0 之间,就会将 side_safe_flag_list[1] 设为 0,否则为 1;如果它的 d_x 值在 0 到 4 之间,就会将 side_safe_flag_list[0] 设为 0,否则为 1。
最后,函数会打印出 front_veh、left_side_front_veh 和 right_side_front_veh 的值,然后将它们以及 side_safe_flag_list 的值赋给对应的变量并返回。
阅读全文