我正在学习python,我想知道如何将输入n = 123
转换为列表[1,2,3]
这是我拥有的代码,但出现错误:
def digitize(n):
return n.split()
我的错误:
AttributeError: 'int' object has no attribute 'split'
答案 0 :(得分:1)
您可以这样做:
const MyMapComponent = compose(
withProps({
googleMapURL:
"https://maps.googleapis.com/maps/api/js?key=AIzaSyC5VMMlyr_A6K5ycpOrq3OsVM8YYbn0q3A&v=3.exp&libraries=geometry,drawing,places",
loadingElement: <div style={{ height: `100%` }} />,
containerElement: <div style={{ height: `400px` }} />,
mapElement: <div style={{ height: `100%` }} />,
}),
withScriptjs,
withGoogleMap,
)(props => (
<GoogleMap defaultZoom={8} defaultCenter={{ lat: -34.397, lng: 150.644 }}>
{props.isMarkerShown && (
<Marker position={{ lat: props.latProp, lng: props.lngProp }} />
)}
</GoogleMap>
));
class App extends Component{
constructor(props){
super(props);
this.state = { lat: -34.400, lng: 151.644 }
}
render(){
return (
<div>
<MyMapComponent isMarkerShown latProp={this.state.lat} lngProp={this.state.lng} />
</div>
);
}
}
export default App;
答案 1 :(得分:1)
您可以执行以下操作:
n = 1234
mylist = [int(x) for x in str(n)]
输出
def digitize(n):
return [int(d) for d in str(n)]
print(digitize(123))
首先使用str将其转换为字符串,然后遍历字符串的字符(数字)并将每个数字转换回整数。另外,您也可以使用map,例如:
[1, 2, 3]
或者如@ Ev.Kounis所指出的,您可以简单地做到:
return [e for e in map(int, str(n))]
答案 2 :(得分:0)
在python中,split是字符串而不是整数的方法。
首先将整数转换为字符串,然后将其转换为list个字符:
list(str(123)) # ['1', '2', '3']
然后您可以再次将每个元素映射到int:
list(map(int,list(str(123)))) # [1, 2, 3]