我正在尝试在 Python 中创建一个类,将非字母数字字符转换为字符串列表的破折号。
例如,我们有以下列表:inventory_list_1 = ['ABCDE : CE ;客户:帐号;新销售', 'JKLEH : SC ;客户:记录编号;老销售']
我们希望最终结果为:inventory_list_2 = ['ABCDE-CE-CUSTOMER-AccountNumber-NewSales', 'JKLEH-SC-CLIENT-RecordNumber-oldSales']
我尝试创建以下类,但没有成功。如何创建一个 Python 类来将非字母数字字符转换为字符串列表的破折号?如何执行该类将 inventory_list_1
转换为 inventory_list_2
?
class clean_data:
def __init__(self, list):
self.list = list
def transform_data(self):
for string_item in self.list:
return re.sub('[^0-9a-zA-Z]+', '-', string_item)
打印(clean_data(inventory_list_1))
最佳答案
任何函数只能执行一次 return 语句。在您的方法中,您尝试遍历所有列表项,然后返回每个修改的项目。但如上所述,只会执行一个 return 语句,因此仅返回第一个修改的元素而不是整个列表。
要返回所有修改的元素,请创建一个附加所有修改的元素的新列表,然后从函数返回新列表。
def class clean_data:
def __init__(self, list1):
self.list1 = list1
def transform_data(self):
retList =[]
for string_item in self.list1:
retList.append(re.sub('[^0-9a-zA-Z]+', '-', string_item))
return(retList)
inventory_list_1 = ['ABCDE : CE ; CUSTOMER : Account Number; New Sales', 'JKLEH : SC ; CLIENT : Record Number; old Sales']
print (clean_data(inventory_list_1).transform_data())
关于python - 创建用于将非字母数字字符转换为破折号的 Python 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58046236/