我有两个变量,它们是由字典组成的列表; a和b,它们将始终具有相同数量的元素。
对于3D图形,我从中创建了另一个字典。当我知道元素的数量时,这些代码字就可以了;我说有3个例子。
fig = dict( data=[a[0],a[1],a[2],b[0],b[1],b[2]], layout=layout )
问题是我通常不知道a和b中有多少个元素。在一般情况下,我似乎无法弄清楚如何正确地迭代或循环以复制上面的代码。
目标是针对我不知道a和b中元素数量的一般情况复制上面的代码。
感谢您的帮助。
答案 0 :(得分:0)
这应该有效:
fig = dict( data=a + b, layout=layout )
答案 1 :(得分:0)
这应该可以完成工作:
export default class Welcome extends React.Component {
constructor (props) {
super(props)
this.state = {
state: 'PENDING',
selectedFile: null
}
this.handleClick = this.handleClick.bind(this)
this.post = this.post.bind(this)
}
handleClick () {
if (this.state.state === 'PENDING') {
this.refs.fileUploader.click()
} else {
cancelPost()
this.setState({ state: 'PENDING' })
}
}
handleChange (selectorFiles) {
if (selectorFiles.length === 0) return
console.log(selectorFiles)
this.post(selectorFiles[0])
}
post (file) {
// set screen to loading
this.setState({
state: 'PROCESSING',
selectedFile: file
})
// set up body
const data = new FormData()
data.append('file', file)
// pass in header, body, then callback
processPost(data,
resp => {
console.log(resp.data)
this.props.successfulPost(file, URL.createObjectURL(file), resp.data.boardTranscription, resp.data.audioTranscription)
},
error => {
// if there is an error, log it and reset state
console.log(error)
this.setState({ state: 'PENDING' })
})
}
render () {
var jumboClass = classNames({
'jumbotron col-8 offset-2 light-pink text-center': true,
'jumboProcessing': this.state.state === 'PROCESSING'
})
var input
var loading
if (this.state.state === 'PROCESSING') {
input = null
loading = (
<div>
<div className="spinner-border" role="status">
<span className="sr-only">Loading...</span>
</div>
<p>processing {this.state.selectedFile.name} ...</p>
<button className={'btn btn-outline-light'} onClick={this.handleChange('')}>Cancel</button>
</div>
)
} else {
input = (
<React.Fragment>
<br></br>
<button
className={'btn-light btn-lg'}
onClick={this.handleClick}
>Upload Video</button>
<input id="file" ref="fileUploader" type="file" accept='video/*'
style={{ display: 'none' }}
onChange={ (e) => this.handleChange(e.target.files) } />
</React.Fragment>
)
loading = null
}
return (
<div className={'row vertical-center'}>
<div className={jumboClass}>
<h2 className={'h2 font-size:10vw'}>Welcome to AutoNote!</h2>
<h6 className={'h6 font-size:5vw'}>Upload a video to generate a linked transcription.</h6>
{input}
<br></br>
{loading}
</div>
</div>)
}
}
Welcome.propsType = {
successfulPost: PropTypes.function
}
在两个列表之间使用时,fig = dict(data=a + b, layout=layout)
运算符将连接操作数。
例如:
+
答案 2 :(得分:0)
您可以链接两个列表。比通过串联创建新列表更节省时间:
var intersection = new Set([...set1].filter(x => set2.has(x)));
输出:
from itertools import chain
a = [1, 2, 3]
b = [4, 5, 6]
for i in chain(a, b):
print(i)